From 5f43531e854db598a3ee34498b25506da4ef6cc3 Mon Sep 17 00:00:00 2001 From: Peter Michael Green Date: Thu, 9 Apr 2026 17:51:00 +0000 Subject: [PATCH] Import libpng1.6_1.6.56-1+rpi1.debian.tar.xz [dgit import tarball libpng1.6 1.6.56-1+rpi1 libpng1.6_1.6.56-1+rpi1.debian.tar.xz] --- changelog | 1937 ++++++++++++++++++++++++++++++ changelogs | 1 + clean | 1 + control | 69 ++ copyright | 324 +++++ docs | 3 + gbp.conf | 5 + libpng-dev.examples | 3 + libpng-dev.install | 11 + libpng-dev.links | 2 + libpng-dev.manpages | 1 + libpng-tools.install | 2 + libpng16-16-udeb.install | 1 + libpng16-16t64.doc-base | 25 + libpng16-16t64.docs | 5 + libpng16-16t64.install | 1 + libpng16-16t64.lintian-overrides | 1 + libpng16-16t64.symbols | 259 ++++ libpng16-config.1 | 58 + libpng16-dev.manpages | 2 + libpng16-tools.install | 2 + not-installed | 1 + patches/libpng-1.6.39-apng.patch | 1728 ++++++++++++++++++++++++++ patches/libpng-config.patch | 61 + patches/series | 2 + rules | 39 + salsa-ci.yml | 3 + source/format | 1 + upstream/metadata | 4 + watch | 10 + 30 files changed, 4562 insertions(+) create mode 100644 changelog create mode 100644 changelogs create mode 100644 clean create mode 100644 control create mode 100644 copyright create mode 100644 docs create mode 100644 gbp.conf create mode 100644 libpng-dev.examples create mode 100644 libpng-dev.install create mode 100644 libpng-dev.links create mode 100644 libpng-dev.manpages create mode 100644 libpng-tools.install create mode 100644 libpng16-16-udeb.install create mode 100644 libpng16-16t64.doc-base create mode 100644 libpng16-16t64.docs create mode 100644 libpng16-16t64.install create mode 100644 libpng16-16t64.lintian-overrides create mode 100644 libpng16-16t64.symbols create mode 100644 libpng16-config.1 create mode 100644 libpng16-dev.manpages create mode 100644 libpng16-tools.install create mode 100644 not-installed create mode 100644 patches/libpng-1.6.39-apng.patch create mode 100644 patches/libpng-config.patch create mode 100755 patches/series create mode 100755 rules create mode 100644 salsa-ci.yml create mode 100644 source/format create mode 100644 upstream/metadata create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..a1aad65 --- /dev/null +++ b/changelog @@ -0,0 +1,1937 @@ +libpng1.6 (1.6.56-1+rpi1) forky-staging; urgency=medium + + * Disable neon. + + -- Peter Michael Green Thu, 09 Apr 2026 17:51:00 +0000 + +libpng1.6 (1.6.56-1) unstable; urgency=high + + * New upstream release 1.6.56 + - .CVE-2026-33416 - Use after free (Closes: #1132012) + - CVE-2026-33636 - OOB read/write (Closes: #1132013) + + -- Tobias Frost Sun, 29 Mar 2026 08:36:13 +0200 + +libpng1.6 (1.6.55-1) unstable; urgency=medium + + * New upstream version 1.6.55 + - CVE-2026-25646 (Closes: #1127566) + * Bump std-version to 4.7.3, no changes required + * Drop R^3: no, default now + + -- Gianfranco Costamagna Thu, 12 Feb 2026 10:55:21 +0100 + +libpng1.6 (1.6.54-1) unstable; urgency=medium + + * New upstream version 1.6.54. + - CVE-2026-22695 - Heap buffer overread. Closes: #1125443 + - CVE-2026-22801 - Heap buffer overread. Closes: #1125444 + * Bump d/copyright years. + + -- Tobias Frost Fri, 16 Jan 2026 08:49:40 +0100 + +libpng1.6 (1.6.53-1) unstable; urgency=medium + + * New upstream version 1.6.53. + + -- Tobias Frost Sun, 07 Dec 2025 11:32:41 +0100 + +libpng1.6 (1.6.52-1) unstable; urgency=medium + + * New upstream versoin 1.6.52 + - CVE-2025-66293 - Out of bound read (Closes: #1121877) + + -- Tobias Frost Thu, 04 Dec 2025 06:24:43 +0100 + +libpng1.6 (1.6.51-1) unstable; urgency=high + + * New upstream version 1.6.51. + - CVE-2025-64505 - Heap buffer overflow. Closes: #1121219 + - CVE-2025-64506 - Heap buffer overread. Closes: #1121218 + - CVE-2025-64720 - Buffer overflow. Closes: #1121217 + - CVE-2025-65018 - Heap buffer. Closes: #1121216 + * Enable salsa-ci. + * Update d/copyright years, remove unused section. + * udeb: install library into usr/lib + + -- Tobias Frost Mon, 24 Nov 2025 21:06:25 +0100 + +libpng1.6 (1.6.50-1) unstable; urgency=medium + + * Upload to sid + + -- Gianfranco Costamagna Sun, 10 Aug 2025 18:09:08 +0200 + +libpng1.6 (1.6.50-1~exp1) experimental; urgency=medium + + * New upstream version 1.6.50 + + -- Gianfranco Costamagna Sun, 10 Aug 2025 18:08:25 +0200 + +libpng1.6 (1.6.49-1~exp1) experimental; urgency=medium + + * New upstream version 1.6.49 + * Update copyright file + + -- Gianfranco Costamagna Sun, 15 Jun 2025 11:32:25 +0200 + +libpng1.6 (1.6.48-1) unstable; urgency=medium + + * New upstream version 1.6.48 + * Ack previous NMU, thanks a lot! + + -- Gianfranco Costamagna Mon, 05 May 2025 21:11:18 +0200 + +libpng1.6 (1.6.47-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Restore dh_makeshlibs override to fix missing udeb line in shlibs. + (Closes: #1100477) + + -- Cyril Brulebois Fri, 14 Mar 2025 10:39:59 +0100 + +libpng1.6 (1.6.47-1) unstable; urgency=medium + + * New upstream version 1.6.47 + + -- Gianfranco Costamagna Fri, 21 Feb 2025 08:01:34 +0100 + +libpng1.6 (1.6.46-4) unstable; urgency=medium + + * Team upload. + + [ Jeremy Bícha ] + * Set dpkg-gensymbols check level to 4 + + -- Gianfranco Costamagna Sat, 01 Feb 2025 18:23:23 +0100 + +libpng1.6 (1.6.46-3) unstable; urgency=medium + + * Add a symbols file for easier maintenance of the package + and added symbols + + -- Gianfranco Costamagna Sat, 01 Feb 2025 08:12:46 +0100 + +libpng1.6 (1.6.46-2) unstable; urgency=medium + + * Bump shlibs to 1.6.45 due to gtk4 test regression in cICP + https://gitlab.gnome.org/GNOME/gtk/-/issues/7275 + (Closes: #1093335) + + -- Gianfranco Costamagna Fri, 31 Jan 2025 15:10:07 +0100 + +libpng1.6 (1.6.46-1) unstable; urgency=medium + + * New upstream version 1.6.46 + + -- Gianfranco Costamagna Mon, 27 Jan 2025 09:30:18 +0100 + +libpng1.6 (1.6.45-1) unstable; urgency=medium + + * New upstream version 1.6.45 + * Refresh libpng-config.patch + * Update copyright years + + -- Gianfranco Costamagna Wed, 08 Jan 2025 20:56:30 +0100 + +libpng1.6 (1.6.44-3) unstable; urgency=medium + + [ Gianfranco Costamagna ] + * Team upload + + [ Helmut Grohne ] + * Disable VSX on legacy powerpc CPUs. (Closes: #1086389) + + -- Gianfranco Costamagna Tue, 10 Dec 2024 22:41:38 +0100 + +libpng1.6 (1.6.44-2) unstable; urgency=low + + * Switch packaging to cmake + + -- Gianfranco Costamagna Tue, 17 Sep 2024 11:37:20 +0200 + +libpng1.6 (1.6.44-1) unstable; urgency=medium + + * New upstream version 1.6.44 + * Update copyright file + * Bump std-version to 4.7.0 + * Relax dependency on dpkg-dev, to ease backports + + -- Gianfranco Costamagna Tue, 17 Sep 2024 09:56:14 +0200 + +libpng1.6 (1.6.43-5) unstable; urgency=medium + + * Fixup doc-base path (Closes: #1065063) + + -- Gianfranco Costamagna Thu, 28 Mar 2024 15:43:50 +0100 + +libpng1.6 (1.6.43-4) unstable; urgency=medium + + * Fixup udeb naming on shlibs file, making it installable again. + (Closes: #1066069) + + -- Gianfranco Costamagna Thu, 28 Mar 2024 12:38:28 +0100 + +libpng1.6 (1.6.43-3) unstable; urgency=medium + + * B-D on dpkg-dev (>= 1.22.5) (Closes: #1065259) + + -- Gianfranco Costamagna Sat, 02 Mar 2024 11:18:15 +0100 + +libpng1.6 (1.6.43-2) unstable; urgency=medium + + * Upload to sid + + -- Gianfranco Costamagna Wed, 28 Feb 2024 12:12:53 +0100 + +libpng1.6 (1.6.43-1exp1) experimental; urgency=medium + + [ Steve Langasek ] + * Rename libraries for 64-bit time_t transition. + + -- Gianfranco Costamagna Mon, 26 Feb 2024 15:47:33 +0100 + +libpng1.6 (1.6.43-1) unstable; urgency=medium + + * New upstream version 1.6.43 + * Add new license for contrib tool + + -- Gianfranco Costamagna Mon, 26 Feb 2024 15:44:38 +0100 + +libpng1.6 (1.6.42-1) unstable; urgency=medium + + * New upstream version 1.6.42 + * Update metadata location + + -- Gianfranco Costamagna Tue, 30 Jan 2024 09:03:50 +0100 + +libpng1.6 (1.6.41-1) unstable; urgency=medium + + * New upstream version 1.6.41 + * Bump copyright years + * Bump upstream copyright years + + -- Gianfranco Costamagna Mon, 29 Jan 2024 17:49:45 +0100 + +libpng1.6 (1.6.40-3) unstable; urgency=medium + + * Update watch file for new github pnggroup location. + + -- Gianfranco Costamagna Wed, 03 Jan 2024 01:37:41 +0100 + +libpng1.6 (1.6.40-2) unstable; urgency=medium + + * bump std-version to 4.6.2 + * Bump copyright years + + [ Mathieu Malaterre ] + * Drop revision from symbols file (Closes: #1053753) + + -- Gianfranco Costamagna Tue, 10 Oct 2023 17:54:45 +0200 + +libpng1.6 (1.6.40-1) unstable; urgency=medium + + * New upstream version 1.6.40 + + -- Gianfranco Costamagna Sat, 24 Jun 2023 23:08:19 +0200 + +libpng1.6 (1.6.39-2) unstable; urgency=medium + + [ Helmut Grohne ] + * Support the noudeb build profile. (Closes: #1024944) + + [ Gianfranco Costamagna ] + * Upload to sid + + -- Helmut Grohne Sun, 27 Nov 2022 20:59:26 +0100 + +libpng1.6 (1.6.39-1) unstable; urgency=medium + + * New upstream version 1.6.39. Fixes CVE-2019-6129. + + -- Gianfranco Costamagna Sat, 26 Nov 2022 15:21:15 +0100 + +libpng1.6 (1.6.38-2) unstable; urgency=medium + + * Add manpages to build + + -- Gianfranco Costamagna Wed, 21 Sep 2022 14:46:45 +0200 + +libpng1.6 (1.6.38-1) unstable; urgency=medium + + * New upstream version 1.6.38 + * Drop all patches, now upstream + * Refactor copyright file and bump copyright years + * Drop as-needed flag, now default + * Add not-installed file + * Move installexamples to libpng-dev.examples file + + -- Gianfranco Costamagna Wed, 21 Sep 2022 12:36:17 +0200 + +libpng1.6 (1.6.37-5) unstable; urgency=medium + + * debian/patches/eb6767273a4eb5d6f4ad528370d7262cf7aa220c.patch: + - cherry-pick upstream fix for memory lieak in png_handle_eXIf function + (LP: #1960326) + + -- Gianfranco Costamagna Mon, 25 Apr 2022 19:29:57 +0200 + +libpng1.6 (1.6.37-4) unstable; urgency=medium + + * Drop apng support, seems to break chromium ability to open + apng files (Closes: #1005850). + + -- Gianfranco Costamagna Fri, 22 Apr 2022 18:48:37 +0200 + +libpng1.6 (1.6.37-3) unstable; urgency=medium + + [ Debian Janitor ] + * Wrap long lines in changelog entries: 1.2.5-5. + + [ Gianfranco Costamagna ] + * debian/patches/326.patch: + - add upstream proposed patch to fix a decode fail with invalid eXIf + chunks (Closes: #969502) + + -- Gianfranco Costamagna Wed, 16 Sep 2020 08:02:32 +0200 + +libpng1.6 (1.6.37-2) unstable; urgency=medium + + [ Debian Janitor ] + * Set upstream metadata fields: Bug-Database, Repository, Repository- + Browse. + * Rely on pre-initialized dpkg-architecture variables. + * Fix day-of-week for changelog entry 1.0.0-0.1. + * Set upstream metadata fields: Bug-Submit. + + [ Gianfranco Costamagna ] + * Bump std-version to 4.5.0, no changes required + + -- Gianfranco Costamagna Fri, 07 Feb 2020 20:00:13 +0100 + +libpng1.6 (1.6.37-1) unstable; urgency=medium + + * Upload to unstable + + -- Gianfranco Costamagna Tue, 02 Jul 2019 09:38:43 +0200 + +libpng1.6 (1.6.37-1~exp4) experimental; urgency=medium + + * debian/patches/72fa126446460347a504f3d9b90f24aed1365595.patch: + - cherry-pick upstream possible fix for tests not being parallel-safe + (Closes: #920657) + + -- Gianfranco Costamagna Tue, 23 Apr 2019 18:04:43 +0200 + +libpng1.6 (1.6.37-1~exp3) experimental; urgency=medium + + * Fix two lintian warnings: + - drop upstream signing key, upstream seems to have stopped tarball + signatures when moved to github (see upstream issue: #287) + - double "version" tag in debian/watch + + -- Gianfranco Costamagna Tue, 23 Apr 2019 13:15:04 +0200 + +libpng1.6 (1.6.37-1~exp2) experimental; urgency=medium + + * Simplify tests, by not passing the .libs directory during their + execution + + -- Gianfranco Costamagna Mon, 15 Apr 2019 12:34:29 +0200 + +libpng1.6 (1.6.37-1~exp1) experimental; urgency=medium + + * New upstream version 1.6.37 + - upload to experimental because of freeze + * Update watch file for github publish site + * Update copyright years and text for pngminus + * Drop all upstream patches, patch refresh for apng patch + * Bump compat level to 12 + + -- Gianfranco Costamagna Mon, 15 Apr 2019 10:36:39 +0200 + +libpng1.6 (1.6.36-6) unstable; urgency=medium + + * Upload to unstable + + -- Gianfranco Costamagna Mon, 08 Apr 2019 10:55:25 +0200 + +libpng1.6 (1.6.36-5exp1) experimental; urgency=medium + + * Drop Anibal from uploaders list, + thank you for your nice work! (Closes: #925014) + * Update copyright years. + * Drop patch 272.patch, superseeded by upstream commits: + 70d122aac42933ab8a708c538f973c3307853212.patch (uncommented) + 82ae623ec9bc3cb5c68aad22596a766e86d593b7.patch + a627bd26a375f5c41d54f90a47c838157d1bec97.patch + + -- Gianfranco Costamagna Wed, 20 Mar 2019 11:58:35 +0100 + +libpng1.6 (1.6.36-5) unstable; urgency=medium + + * Tweak old 272 patch to add the only relevant part of commit + 70d122aac42933ab8a708c538f973c3307853212.patch + * Drop 70d122aac42933ab8a708c538f973c3307853212.patch, it breaks the + testsuite. + + -- Gianfranco Costamagna Tue, 05 Feb 2019 12:54:50 +0100 + +libpng1.6 (1.6.36-4) unstable; urgency=high + + * debian/patches/70d122aac42933ab8a708c538f973c3307853212.patch, + debian/patches/8439534daa1d3a5705ba92e653eda9251246dd61.patch: + - new fixes for arm64 and general test failures (and leaks) + * debian/patches/CVE-2019-7317.patch: + - fix for CVE 2019-7317 (Closes: #921355) + Thanks Salvatore Bonaccorso for your report! + + -- Gianfranco Costamagna Tue, 05 Feb 2019 11:43:24 +0100 + +libpng1.6 (1.6.36-3) unstable; urgency=medium + + * debian/patches/272.patch: + - upstream fix for arm64 test failures. + - drop previous revert-* patches + + -- Gianfranco Costamagna Mon, 31 Dec 2018 09:24:07 +0100 + +libpng1.6 (1.6.36-2) unstable; urgency=medium + + * Update watch file for github location + * Add apng support, like what is done in arch linux + - https://github.com/glennrp/libpng/issues/267 + * d/p/revert-{7734cda20cf1236aef60f3bbd2267c97bbb40869, + 1ceaa83a844cd3ecef25279d60720f910b96f297, + b66ed711315c46ef6c556c83c0074ecdcbd9937f}.patch: + revert on arm64 only the chromebook optimizations, they are + making the build fail. + - discussion at https://github.com/glennrp/libpng/issues/266 + [ Mattia Rizzolo ] + * Fixup std-version numbering + + -- Gianfranco Costamagna Fri, 28 Dec 2018 14:13:52 +0100 + +libpng1.6 (1.6.36-1) unstable; urgency=medium + + * New upstream version 1.6.36 + * update copyright file + * Bump std-version to 4.3.0.1, no changes required + * drop patch 8a057: upstream + * Add nocheck profile in rules file + + [ Ondřej Nový ] + * d/changelog: Remove trailing whitespaces + + -- Gianfranco Costamagna Thu, 27 Dec 2018 13:47:10 +0100 + +libpng1.6 (1.6.34-2) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * debian/patches/8a05766cb74af05c04c53e6c9d60c13fc4d59bf2.patch: + Closes: #903430 + CVE-2018-13785 + + [ Gianfranco Costamagna ] + * Upload to unstable + * Switch VCS fields to salsa.d.o + * Bump std-version to 4.1.5, no changes required + * Switch copyright in https mode + + -- Gianfranco Costamagna Tue, 10 Jul 2018 13:17:30 +0200 + +libpng1.6 (1.6.34-1) unstable; urgency=medium + + * New upstream version 1.6.34 + * Remove files removed upstream (the failing png files) + + -- Gianfranco Costamagna Fri, 29 Sep 2017 18:54:51 +0200 + +libpng1.6 (1.6.33-1) unstable; urgency=medium + + * New upstream version 1.6.33 + * Drop idat patch: upstream + * Update copyright + * Bump std-version to 4.1.1 + * Remove some new test png files that make testsuite fail + (they fail also on older libpng version, just they weren't available + status is tracked at https://sourceforge.net/p/libpng/bugs/271/ ) + + -- Gianfranco Costamagna Fri, 29 Sep 2017 08:44:54 +0200 + +libpng1.6 (1.6.32-3) unstable; urgency=high + + * Fix invalid IDAT images, thanks Felix Geyer for the debug/bug reassign! + (Closes: #876563) + + -- Gianfranco Costamagna Tue, 26 Sep 2017 10:15:08 +0200 + +libpng1.6 (1.6.32-2) unstable; urgency=medium + + * Bump std-version to 4.1.0, now priority is extra + * Add missing newline on copyright entry, making lintian sad + * Move the examples into the main libpng-dev (Closes: #876244) + - thanks Helmut Grohne for the useful bug report! + + -- Gianfranco Costamagna Sun, 17 Sep 2017 10:37:44 +0200 + +libpng1.6 (1.6.32-1) unstable; urgency=medium + + * New upstream version 1.6.32 + * Update copyright file + + -- Gianfranco Costamagna Sat, 26 Aug 2017 23:43:31 +0200 + +libpng1.6 (1.6.31-1) unstable; urgency=medium + + * New upstream release. + * Update d/watch to point to ftp site and to verify gpg signature. + * fix-arm-build.patch removed, fixed upstream. + * Update d/copyright (years and add new maintainers) and remove some + redudant entries. + + -- Tobias Frost Fri, 04 Aug 2017 07:10:47 +0200 + +libpng1.6 (1.6.30-2) unstable; urgency=medium + + * Fix arm* build failures with upstream patch + (Closes: #867670) + + -- Gianfranco Costamagna Sun, 09 Jul 2017 01:02:17 +0200 + +libpng1.6 (1.6.30-1) unstable; urgency=medium + + * New upstream release. + * Update copyright + * Bump std-version to 4.0.0 + + -- Gianfranco Costamagna Sat, 08 Jul 2017 12:52:44 +0200 + +libpng1.6 (1.6.29-3) unstable; urgency=medium + + * Upload to unstable + + -- Gianfranco Costamagna Mon, 12 Jun 2017 11:22:51 +0200 + +libpng1.6 (1.6.29-2) experimental; urgency=medium + + * Enable PIE eveywhere + + -- Gianfranco Costamagna Sat, 22 Apr 2017 14:46:34 +0200 + +libpng1.6 (1.6.29-1) experimental; urgency=medium + + * New upstream release. + - Drop fix multiarch patch: upstream + * Use autoreconf. + + -- Gianfranco Costamagna Mon, 10 Apr 2017 08:39:26 +0200 + +libpng1.6 (1.6.28-1exp4) experimental; urgency=medium + + * Override autoreconf due to debhelper bug 844504 + + -- Gianfranco Costamagna Thu, 02 Mar 2017 16:29:47 +0100 + +libpng1.6 (1.6.28-1exp3) experimental; urgency=medium + + * No-autoreconf for cmake builds + + -- Gianfranco Costamagna Thu, 02 Mar 2017 16:14:47 +0100 + +libpng1.6 (1.6.28-1exp2) experimental; urgency=medium + + * Readd multiarch patch, it was merged by + upstream on master but not on 1.6 branch + + -- Gianfranco Costamagna Thu, 02 Mar 2017 15:07:10 +0100 + +libpng1.6 (1.6.28-1exp1) experimental; urgency=medium + + * Switch to cmake + + -- Gianfranco Costamagna Mon, 09 Jan 2017 19:53:06 +0100 + +libpng1.6 (1.6.28-1) unstable; urgency=medium + + * New upstream release. + + -- Gianfranco Costamagna Mon, 09 Jan 2017 19:50:31 +0100 + +libpng1.6 (1.6.27-1) unstable; urgency=medium + + * New upstream release (Closes: #849799) + - Fix for CVE-2016-10087 + + -- Gianfranco Costamagna Sat, 31 Dec 2016 08:51:32 +0100 + +libpng1.6 (1.6.26-6) unstable; urgency=medium + + * Enable pie in Debian, disable it in Ubuntu. + - thanks pochu :) + + -- Gianfranco Costamagna Thu, 08 Dec 2016 17:03:30 +0100 + +libpng1.6 (1.6.26-5) unstable; urgency=medium + + * Revert cmake switch, failing on arm64. + + -- Gianfranco Costamagna Wed, 07 Dec 2016 08:41:24 +0100 + +libpng1.6 (1.6.26-4) unstable; urgency=low + + * Upload to unstable. + * Disable pie where Ubuntu has not defaulted yet. + (armhf, arm64, powerpc) + + -- Gianfranco Costamagna Tue, 15 Nov 2016 20:50:40 +0100 + +libpng1.6 (1.6.26-3) experimental; urgency=medium + + * Switch to cmake. + + -- Gianfranco Costamagna Tue, 15 Nov 2016 20:50:40 +0100 + +libpng1.6 (1.6.26-2) unstable; urgency=medium + + * Enable full hardening (+pie) (Closes: #844429) + + -- Gianfranco Costamagna Tue, 15 Nov 2016 18:10:16 +0100 + +libpng1.6 (1.6.26-1) unstable; urgency=low + + * New upstream release. + * Switch to compat level 10 + - Drop autoreconf/parallel, automatically injected + + -- Gianfranco Costamagna Mon, 24 Oct 2016 19:36:32 +0200 + +libpng1.6 (1.6.25-2) unstable; urgency=medium + + * Mark the -tools package Multi-Arch: foreign. + (Closes: #840446). + Thanks Francois Gourget for the bug report! + + -- Gianfranco Costamagna Tue, 11 Oct 2016 19:13:50 +0200 + +libpng1.6 (1.6.25-1) unstable; urgency=medium + + * New upstream release. + + -- Gianfranco Costamagna Tue, 06 Sep 2016 12:29:51 +0200 + +libpng1.6 (1.6.24-2) unstable; urgency=medium + + * Stop providing pngcp, because a tool with the same + name is provided by pngtools (Closes: #834119, #834118). + - Consider re-enabling it if ineeded, but for now the + tool has no manpage and no help command. + - An alternative might be to make pngtools and libpng-tools + conflict each others. + + -- Gianfranco Costamagna Fri, 12 Aug 2016 10:35:50 +0200 + +libpng1.6 (1.6.24-1) unstable; urgency=medium + + * New upstream release. + - install also new pngcp tool in libpng-tools package. + + -- Gianfranco Costamagna Thu, 11 Aug 2016 23:14:13 +0200 + +libpng1.6 (1.6.23-1) unstable; urgency=medium + + * New upstream release. + + -- Gianfranco Costamagna Wed, 15 Jun 2016 16:41:46 +0200 + +libpng1.6 (1.6.22-1) unstable; urgency=medium + + * New upstream release. + - drop fix_define_PNG_READ_16_TO_8.patch: upstream + * Update copyright file. + + -- Gianfranco Costamagna Sun, 05 Jun 2016 23:41:22 +0200 + +libpng1.6 (1.6.21-5) unstable; urgency=medium + + * d/control: Add VCS-* to repository on collab-maint. + * Add patch to properly define PNG_READ_16_TO_8_SUPPORTED (Closes: #824014) + * Add d/gbp.conf to ensure signed tags. + + -- Tobias Frost Wed, 11 May 2016 19:30:16 +0200 + +libpng1.6 (1.6.21-4) unstable; urgency=medium + + * add libpng-config.patch from the old + src:libpng. + - disabling multiarch bits in libpng-config has + the "side-effect" to let us have a Multiarch libpng-dev package. + Closes: #822297 + * Make the libpng-dev package Multiarch ready. + + -- Gianfranco Costamagna Sat, 23 Apr 2016 09:04:06 +0200 + +libpng1.6 (1.6.21-3) unstable; urgency=medium + + [ Manuel A. Fernandez Montecelo ] + * Add hardening flags (excluding PIE. CLoses: #805822) + + [ Gianfranco Costamagna ] + * Drop useless pre-depends line. + + [ Bart Martens ] + * Fix watch file + + [ Laurent Bigonville ] + * Drop useless packages in Replaces field. (Closes: #820887) + + -- Gianfranco Costamagna Wed, 13 Apr 2016 08:49:30 +0200 + +libpng1.6 (1.6.21-2) unstable; urgency=medium + + * Upload to unstable. + * Add myself and Tobias to uploaders, as per maintainers + suggestion. + * Bump std-version to 3.9.8, no changes required. + + -- Gianfranco Costamagna Wed, 06 Apr 2016 17:26:38 +0200 + +libpng1.6 (1.6.21-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + * Add upstream signing key + * Fix watch file. + * Update copyright file. + * Drop libpng16-devtools, useless and merged in libpng-dev. + (many packages relies on that script for building correctly) + - breaks + replaces accordingly. + * Remove multiarch -dev package + * Rename libpng16-tools to libpng-tools, there is no need of + strict versioning here. + * Install upstream changelog. + * Run upstream testsuite. + * Remove README.* files, useless now. + + -- Gianfranco Costamagna Thu, 31 Mar 2016 14:43:03 +0200 + +libpng1.6 (1.6.20-3) experimental; urgency=medium + + * Team upload + * Move libpng16-dev to libpng-dev, to ease next transitions. + * Drop conflicts against mzscheme, pngcrush, pngmeta, + povray-3.5, qemacs, some of them disappeared, some of + them have later versions already in old-oldstable. + * Simplify even more the packaging, probably fixing #813288 + * Fix symlinks, and two lintian errors: + - library-in-root-and-usr + - old-style-config-script-multiarch-path + (multiarch: no for libpng16-devtools) + * Update standard-version to 3.9.7, no changes required. + * Switch to dh-autoreconf (Closes: #813027) + * Remove libpng16-devtools circular dependency, recommend it instead. + * Fix duplicate description lintian warning + * Fix copyright lintian warnings + * Remove copyright.in file + * Use new plain dh calls in rules file + * Remove some old lintian overrides. + + -- Gianfranco Costamagna Wed, 16 Mar 2016 17:05:08 +0100 + +libpng1.6 (1.6.20-2) experimental; urgency=medium + + [ Tobias Frost ] + * libpng16-16-udeb should not Conflicts: libpng-12-0. + + [ Anibal Monsalve Salazar ] + * debhelper compat version is 9. + * debian/control: libpng16-devtools is "Multi-Arch: same". + + -- Anibal Monsalve Salazar Thu, 28 Jan 2016 10:33:54 +0000 + +libpng1.6 (1.6.20-1.1) experimental; urgency=medium + + * Non-maintainer upload. + * Preparation for the transition, going to experimental. + * Make libpng16-dev depend on libpng16-devtools to have libpng-config + pulled in automatically for reverse dependencies. + * Provide a so-name neutral devtools package + + -- Tobias Frost Sun, 24 Jan 2016 11:26:12 +0100 + +libpng1.6 (1.6.20-1) experimental; urgency=medium + + * New upstream release. + Fix CVE-2015-8472. + Closes: #810074. + * Use default options to compress. + Remove debian/source/options. + + -- Anibal Monsalve Salazar Thu, 07 Jan 2016 23:35:21 +0000 + +libpng1.6 (1.6.19-1) experimental; urgency=medium + + * New upstream release. + * Update lintian-overrides for 1.6.19. + + -- Nobuhiro Iwamatsu Wed, 18 Nov 2015 13:07:21 +0900 + +libpng1.6 (1.6.16-1) experimental; urgency=medium + + * New upstream release (Closes: #773823) + Fix CVE-2015-8540. + * Standards Version is 3.9.6. + * Update debian/copyright. + Add infomation of license for other all files. + * Update lintian-overrides for 1.6.16. + + -- Nobuhiro Iwamatsu Sat, 07 Mar 2015 18:33:32 +0900 + +libpng1.6 (1.6.10-2) experimental; urgency=low + + * Add libpng16-devtools package. + Move libpng-config to this package. + + -- Nobuhiro Iwamatsu Wed, 02 Apr 2014 09:16:13 +0900 + +libpng1.6 (1.6.10-1) experimental; urgency=low + + * New upstream release (Closes: #740585) + Fixed CVE-2014-0333. + * Update overrides files. + + -- Nobuhiro Iwamatsu Sat, 22 Mar 2014 09:58:12 +0900 + +libpng1.6 (1.6.8-2) experimental; urgency=low + + * Update debian/copyright. (Closes: #735737) + + -- Nobuhiro Iwamatsu Tue, 21 Jan 2014 08:59:56 +0900 + +libpng1.6 (1.6.8-1) experimental; urgency=low + + * New upstream release. + + -- Nobuhiro Iwamatsu Wed, 15 Jan 2014 13:10:28 +0900 + +libpng1.6 (1.6.7-1) experimental; urgency=low + + * New upstream release. + + -- Nobuhiro Iwamatsu Tue, 14 Jan 2014 15:21:52 +0900 + +libpng (1.5.11-1) experimental; urgency=low + + * New upstream release. + + -- Nobuhiro Iwamatsu Thu, 05 Jul 2012 13:18:14 +0900 + +libpng (1.5.10-3) experimental; urgency=low + + * Remove libpng12-dev binary package. libpng-dev provides and replaces + libpng12-dev. + + -- Anibal Monsalve Salazar Sat, 19 May 2012 18:55:25 +1000 + +libpng (1.5.10-2) experimental; urgency=low + + * Add transition packages libpng3, libpng12-0 and libpng12-dev + + -- Anibal Monsalve Salazar Fri, 18 May 2012 10:09:24 +1000 + +libpng (1.5.10-1) experimental; urgency=high + + * New upstream version 1.5.10 + - Fix CVE-2011-3048 (memory corruption flaw) + Closes: 667475 + * Standards Version is 3.9.3 + + -- Anibal Monsalve Salazar Mon, 09 Apr 2012 13:29:39 +1000 + +libpng (1.5.9-1) experimental; urgency=low + + * New upstream version 1.5.9 + + The purpose of this release is to fix the dangerous CVE-2011-3026. + The libpng patch is different from the one that was distributed + earlier by Chromium, in that the libpng user limit feature is not + crippled by the patch. + + Remove 02-660026-CVE-2011-3026.patch + + -- Anibal Monsalve Salazar Sun, 19 Feb 2012 12:22:43 +1100 + +libpng (1.5.8-1) experimental; urgency=high + + * New upstream release. + Fix a one-byte (stack) buffer-overrun bug in + png_formatted_warning(), which could lead to crashes (denial of + service) or, conceivably, execution of hostile code. + This vulnerability has been assigned ID CVE-2011-3464. + * Check for both truncation (64-bit platforms) and integer overflow + Fix CVE-2011-3026 + Add 02-660026-CVE-2011-3026.patch + Closes: 660026 + + -- Anibal Monsalve Salazar Thu, 16 Feb 2012 09:18:13 +1100 + +libpng (1.5.7-2) experimental; urgency=low + + * Fix typo from PPFLAGS to CPPFLAGS. + + -- Nobuhiro Iwamatsu Mon, 09 Jan 2012 21:39:33 +0900 + +libpng (1.5.7-1) experimental; urgency=low + + * New upstream release. + * Update debian/rules. + Enabled hardened build flags. (Closes: #654149) + + -- Nobuhiro Iwamatsu Mon, 09 Jan 2012 21:02:50 +0900 + +libpng (1.5.6-1) experimental; urgency=low + + * New upstream release. + + -- Nobuhiro Iwamatsu Mon, 07 Nov 2011 12:35:59 +0900 + +libpng (1.5.5-1) experimental; urgency=low + + * New upstream release. + * Fix lintian error: udeb-uses-non-gzip-data-tarball. + Changed option of dh_builddeb for every package. + * Fix lintian warning: brace-expansion-in-debhelper-config-file. + Remove brace-expansion from debian/libpng-dev.install. + + -- Nobuhiro Iwamatsu Wed, 26 Oct 2011 12:35:05 +0900 + +libpng (1.5.4-2) experimental; urgency=low + + * Port Steve Langasek's changes for 1.2.46-1 + - Build for multiarch. Closes: 634151 + - Drop debian/libpng15-15-udeb.dirs, which just adds a pointless empty + directory to the udeb + * Update debian/docs and debian/libpng15-15.docs + * Add debian/libpng15-15.doc-base + * Build-Depend on autotools-dev + + -- Anibal Monsalve Salazar Tue, 19 Jul 2011 00:49:57 +1000 + +libpng (1.2.46-2) unstable; urgency=low + + [ Steve Langasek ] + * Build for multiarch. Requires converting libpng3 from Arch: all to + Arch: any. Closes: 634151 + * Drop debian/libpng12-0-udeb.dirs, which just adds a pointless empty + directory to the udeb. + + [ Anibal Monsalve Salazar ] + * Fix doc-base file + Closes: 633944, 633957, 634120 + * Pass "-Zbzip2 -z9" to dpkg-deb + + -- Anibal Monsalve Salazar Mon, 18 Jul 2011 23:38:25 +1000 + +libpng (1.5.4-1) experimental; urgency=low + + * New upstream release (Closes: #633871). + - Fix CVE: CVE-2011-2690 + Buffer overwrite in png_rgb_to_gray + - CVE: CVE-2011-2691 + Crash in png_default_error due to use of NULL Pointer + - CVE: CVE-2011-2692 + Memory corruption when handling empty sCAL chunks + - Remove patches/02-632786-CVE-2011-2501.patch. Applied to upstream. + + -- Nobuhiro Iwamatsu Fri, 15 Jul 2011 12:01:42 +0900 + +libpng (1.2.46-1) unstable; urgency=high + + * New upstream release (Closes: #633871). + - Fix CVE: CVE-2011-2690 + Buffer overwrite in png_rgb_to_gray + - CVE: CVE-2011-2691 + Crash in png_default_error due to use of NULL Pointer + - CVE: CVE-2011-2692 + Memory corruption when handling empty sCAL chunks + - Update patches/01-legacy.patch + - Remove patches/02-632786-CVE-2011-2501.patch. Applied to upstream. + + -- Nobuhiro Iwamatsu Fri, 15 Jul 2011 11:47:49 +0900 + +libpng (1.5.2-3) experimental; urgency=low + + * Rename libpng15-dev to libpng-dev + + -- Anibal Monsalve Salazar Wed, 06 Jul 2011 13:14:03 +1000 + +libpng (1.5.2-2) experimental; urgency=low + + * Fix 1-byte uninitialized memory reference in png_format_buffer() + Fix CVE-2011-2501 + Add debian/patches/02-632786-CVE-2011-2501.patch + Closes: 632786 + * Pass "-Zbzip2 -z9" to dpkg-deb + * Fix xc-package-type-in-debian-control + * Fix debian-rules-missing-recommended-target + + -- Anibal Monsalve Salazar Wed, 06 Jul 2011 11:27:05 +1000 + +libpng (1.2.44-3) unstable; urgency=high + + * Fix 1-byte uninitialized memory reference in png_format_buffer() + Fix CVE-2011-2501 + Add debian/patches/02-632786-CVE-2011-2501.patch + Closes: 632786 + * Standards version is 3.9.2 + * Fix xc-package-type-in-debian-control + * Fix debian-rules-missing-recommended-target + + -- Anibal Monsalve Salazar Wed, 06 Jul 2011 10:04:32 +1000 + +libpng (1.5.2-1) experimental; urgency=low + + * New upstream release (Closes: #565821, #574257, #606867). + * Remove Sam Hocevar from Uploaders. + * Add myself to Uploaders. + * Remove libtool, automake and autoconf from Build-depends. + * Disable practice of autogen.sh from debian/rules. + * Remove support libpng3 package (Closes: #369104, #615558). + * Update debian/copyright. + - Update copyright holder. + - Add new license for contrib/pngsuite (Closes: #615558). + * Remove patches directory. + * Add libpng15-dev.lintian-overrides. + Overrides manpage-has-errors-from-man usr/share/man/man3/libpng.3.gz. + + -- Nobuhiro Iwamatsu Thu, 09 Jun 2011 21:37:11 +0900 + +libpng (1.2.44-2) unstable; urgency=low + + * debian/libpng3.links: fix up the compat symlink to point to /lib + Patch by Steve Langasek + Closes: #579074, LP: #284325 + + -- Anibal Monsalve Salazar Sun, 13 Mar 2011 14:40:33 +1100 + +libpng (1.2.44-1) unstable; urgency=low + + * New upstream release + Stop memory leak when reading a malformed sCAL chunk + + -- Anibal Monsalve Salazar Sat, 26 Jun 2010 13:32:43 +1000 + +libpng (1.2.43-1) unstable; urgency=high + + * New upstream release + * Fix CVE-2010-0205 and Cert VU#576029 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0205 + https://www.kb.cert.org/vuls/id/576029 + Do not stall and consume large quantities of memory while processing + certain Portable Network Graphics (PNG) files + Closes: 572308 + + -- Anibal Monsalve Salazar Wed, 03 Mar 2010 16:44:47 +1100 + +libpng (1.2.42-2) unstable; urgency=low + + * Merge 1.2.42-1ubuntu1 + Move libpng from /usr/lib to /lib, so that plymouth is usable on + systems with a separate /usr. + * Fix out-of-date-standards-version + + -- Anibal Monsalve Salazar Sun, 14 Feb 2010 13:09:51 +1100 + +libpng (1.2.42-1ubuntu1) lucid; urgency=low + + * Merge from Debian testing. Remaining changes: + - Move libpng from /usr/lib to /lib, so that plymouth is usable on + systems with a separate /usr. + + -- Steve Langasek Thu, 28 Jan 2010 11:57:34 +0000 + +libpng (1.2.42-1) unstable; urgency=low + + * New upstream release + * Remove 02-export-png_set_strip_error_numbers.patch (merged) + * Fix debhelper-but-no-misc-depends + + -- Anibal Monsalve Salazar Sat, 16 Jan 2010 17:53:14 +1100 + +libpng (1.2.41-1ubuntu1) lucid; urgency=low + + * Move libpng from /usr/lib to /lib, so that plymouth is usable on systems + with a separate /usr. + + -- Steve Langasek Mon, 25 Jan 2010 00:18:15 -0800 + +libpng (1.2.41-1) unstable; urgency=low + + * New upstream release + * Debian source format is 3.0 (quilt) + * Update debian/watch + * Add 02-export-png_set_strip_error_numbers.patch + Define PNG_ERROR_NUMBERS_SUPPORTED + Upstream doesn't define PNG_ERROR_NUMBERS_SUPPORTED since 1.2.41. As + a consecuence, the symbol png_set_strip_error_numbe@@PNG12_0 wasn't + exported. + + -- Anibal Monsalve Salazar Fri, 04 Dec 2009 11:23:50 +1100 + +libpng (1.2.40-1) unstable; urgency=low + + * New upstream release + + -- Anibal Monsalve Salazar Wed, 07 Oct 2009 12:44:09 +1100 + +libpng (1.2.39-1) unstable; urgency=low + + * New upstream release + * Fix out-of-date-standards-version + * Fix patch-system-but-no-source-readme + + -- Anibal Monsalve Salazar Thu, 20 Aug 2009 14:57:46 +1000 + +libpng (1.2.38-1) unstable; urgency=low + + * New upstream release + * Fix out-of-date-standards-version + * Update upstream homepage + Closes: 536474 + + -- Anibal Monsalve Salazar Sat, 18 Jul 2009 05:44:23 +1000 + +libpng (1.2.37-1) unstable; urgency=low + + * New upstream release + + -- Anibal Monsalve Salazar Thu, 04 Jun 2009 23:03:58 +1000 + +libpng (1.2.36-1) unstable; urgency=low + + * New upstream release + * Standards-Version is 3.8.1 + * debhelper compat is 7 + * Run dh_prep instead of dh_clean -k + + -- Anibal Monsalve Salazar Fri, 22 May 2009 09:11:26 +1000 + +libpng (1.2.35-1) unstable; urgency=high + + * New upstream release + - http://secunia.com/advisories/33970/ + Fix a vulnerability reported by Tavis Ormandy in which + some arrays of pointers are not initialized prior to using + "malloc" to define the pointers. + Closes: #516256 + - http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5907 + The png_check_keyword function in pngwutil.c in libpng, might + allow context-dependent attackers to set the value of an + arbitrary memory location to zero via vectors involving + creation of crafted PNG files with keywords, related to an + implicit cast of the '\0' character constant to a NULL pointer. + * Don't build libpng3 when binary-indep target is not called. + Closes: #486415 + + -- Anibal Monsalve Salazar Sat, 21 Feb 2009 15:50:52 +1100 + +libpng (1.2.33-2) unstable; urgency=low + + * Fix the following lintian issues: + W: libpng12-0: copyright-refers-to-versionless-license-file + usr/share/common-licenses/GPL + + -- Anibal Monsalve Salazar Mon, 16 Feb 2009 11:32:17 +1100 + +libpng (1.2.33-1) experimental; urgency=low + + * New upstream release + - Fix memory leak after reading a malformed tEXt chunk + + -- Anibal Monsalve Salazar Sat, 01 Nov 2008 17:21:56 +1100 + +libpng (1.2.32-1) experimental; urgency=low + + * New upstream release + - libpng.pc is configured to do static linking; closes: #483477 + - use autoconf variables in .pc and libpng-config; closes: #483478 + * Remove debian/patches/02-501109-pngtest.c.diff; it was merged + + -- Anibal Monsalve Salazar Sun, 05 Oct 2008 08:20:20 +1100 + +libpng (1.2.27-2) unstable; urgency=medium + + * Fix CVE-2008-3964: off-by-one error in pngtest.c; closes: #501109 + * Standards-Version is 3.8.0 + + -- Anibal Monsalve Salazar Sat, 04 Oct 2008 19:45:17 +1000 + +libpng (1.2.27-1) unstable; urgency=low + + * New upstream release + * Patches merged upstream: + debian/patches/02-476669-CVE-2008-1382.diff + debian/patches/03-404514-png.5.diff + * Run ./autogen.sh + + -- Anibal Monsalve Salazar Tue, 29 Apr 2008 17:22:16 +1000 + +libpng (1.2.26-1) unstable; urgency=high + + * New upstream release. Closes: #431202 + * Use quilt + Add 01-legacy.diff + * Fix CVE-2008-1382 denial of service and possibly code execution + Add 02-476669-CVE-2008-1382.diff + Closes: #476669 + * Fix URL in png.5. Closes: #404514 + Add 03-404514-png.5.diff + * Move examples to libpng12-dev. Closes: #401467 + * Fix "libpng (<= 1.2.20) contains grey-licensed code". Closes: #469126 + * Fix the following lintian issues: + W: libpng source: debian-rules-ignores-make-clean-error line 37 + W: libpng source: substvar-source-version-is-deprecated libpng12-dev + W: libpng source: out-of-date-standards-version 3.7.2 (current is 3.7.3) + W: libpng12-0-udeb udeb: description-contains-homepage + W: libpng3: description-contains-homepage + W: libpng12-dev: description-contains-homepage + W: libpng12-0: package-contains-empty-directory usr/bin/ + W: libpng12-0: package-contains-empty-directory usr/sbin/ + W: libpng12-0: description-contains-homepage + W: libpng12-0: doc-base-unknown-section libpng12:22 Apps/Programming + + -- Anibal Monsalve Salazar Sun, 20 Apr 2008 18:22:32 +1000 + +libpng (1.2.15~beta5-3) unstable; urgency=high + + * ACKed NMU. + * Fixed out-of-bounds read operations triggered by crafted + png image files (CVE-2007-5269) (Closes: #446308). + + -- Anibal Monsalve Salazar Sun, 14 Oct 2007 09:55:00 +1000 + +libpng (1.2.15~beta5-2.1) unstable; urgency=high + + * Non-maintainer upload by testing security team. + * Fixed out-of-bounds read operations triggered by crafted + png image files (CVE-2007-5269) (Closes: #446308). + + -- Nico Golde Sun, 14 Oct 2007 01:12:51 +0200 + +libpng (1.2.15~beta5-2) unstable; urgency=high + + * It seems that a grayscale image with a malformed (bad CRC) tRNS + chunk will crash libpng and mozilla. Closes: #424729. + - CVE-2007-2445 + http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2007-2445 + - CERT Vulnerability Note VU#684664 + http://www.kb.cert.org/vuls/id/684664 + + -- Anibal Monsalve Salazar Wed, 09 May 2007 17:34:02 +1000 + +libpng (1.2.15~beta5-1) unstable; urgency=low + + * Applied legacy_symbols.patch. + * Changed shlibs dependecy versions to ">= 1.2.13-4". + * libpng12-0: Added the following conflicts: mzscheme (<= 1:209-5), + pngcrush (<= 1.5.10-2), pngmeta (<= 1.11-3), qemacs (<= 0.3.1-5), + povray-3.5 (<= 3.5.0c-10). + + -- Anibal Monsalve Salazar Wed, 20 Dec 2006 10:24:18 +1100 + +libpng (1.2.15~beta5-0) unstable; urgency=high + + * New upstream release. + - Fixed asm API functions not exported on amd64. Closes: #401044. + - Fixed "libpng hangs when saving profile". Closes: #401423. + * Fixed "Incorrect shlibs information". Closes: #401465. + * Removed patches for png.h and pngconf.h. + * Updated debian/watch. + + -- Anibal Monsalve Salazar Sun, 03 Dec 2006 14:47:41 +1100 + +libpng (1.2.13-4) unstable; urgency=low + + * Removed drop_pass_width patch. Closes: #399499. + + -- Anibal Monsalve Salazar Tue, 21 Nov 2006 19:07:43 +1100 + +libpng (1.2.13-3) unstable; urgency=low + + * libpng12-dev: removed the conflict with libpng3-dev. + + -- Anibal Monsalve Salazar Sun, 19 Nov 2006 16:36:02 +1100 + +libpng (1.2.13-2) unstable; urgency=low + + * Put back binary package libpng3. + + -- Anibal Monsalve Salazar Sun, 19 Nov 2006 15:32:39 +1100 + +libpng (1.2.13-1) unstable; urgency=low + + * Fixed conflict with the new libpng package. Closes: #399296. + * Fixed png.5 man page formatting. Closes: #353061. + Patch by Kevin Ryde . + + -- Anibal Monsalve Salazar Sun, 19 Nov 2006 13:55:17 +1100 + +libpng (1.2.13-0) unstable; urgency=high + + * New upstream release. + * CVE-2006-5793: Fixed a new security issue regarding malformed + sPLT chunks. Closes: #398706. + * Transitional package libpng3 is not shipped anymore. + Closes: #369104. + + -- Anibal Monsalve Salazar Sun, 19 Nov 2006 09:02:09 +1100 + +libpng (1.2.12-0) unstable; urgency=high + + * New upstream release. Closes: #366070. + * CVE-2006-3334: Fixed Buffer overflow in the png_decompress_chunk + function in pngrutil.c in libpng before 1.2.12 allows + context-dependent attackers to cause a denial of service and + possibly execute arbitrary code via unspecified vectors related + to "chunk error processing," possibly involving the "chunk_name". + Closes: #397892. + * Removed debian/x86_patches/pnggccrd-PIC.patch as it's merged + upstream. + + -- Anibal Monsalve Salazar Thu, 09 Nov 2006 19:25:08 +1100 + +libpng (1.2.8rel-7) unstable; urgency=low + + * New maintainer. Closes: #393109. + * ACK NMUs. Closes: #378463, #377298, #356252. + * debian/control: + - set Standards-Version to 3.7.2. + - set Priority to extra for libpng12-0-udeb. + - added ${misc:Depends} to libpng12-0 and libpng12-0-udeb + dependency lists. + * Added debian/watch file. + + -- Anibal Monsalve Salazar Mon, 16 Oct 2006 17:34:58 +1000 + +libpng (1.2.8rel-6) unstable; urgency=low + + * Orphaning package. + + -- Josselin Mouette Sun, 15 Oct 2006 03:22:24 +0200 + +libpng (1.2.8rel-5.2) unstable; urgency=low + + * Non-maintainer upload. + * Backport changes from 1.2.12 to fix a buffer overflow in + png_decompress_chunk; patch by Alec Berryman. [CVE-2006-3334] + (Closes: #377298) + + -- Steinar H. Gunderson Sun, 16 Jul 2006 16:27:56 +0200 + +libpng (1.2.8rel-5.1) unstable; urgency=low + + * Non Maintainer Upload (closes: #356252). + * Add support for udeb dependency resolution in shlibs file. + * Update debhelper compatibility to level 5. + + -- Frans Pop Thu, 30 Mar 2006 11:46:39 +0200 + +libpng (1.2.8rel-5) unstable; urgency=low + + * drop_pass_width.patch: don't export png_pass_width, it's absolutely + unnecessary. + * libpng12-0.shlibs: downgrade the shlibs accordingly + (closes: #331383). + + -- Josselin Mouette Mon, 3 Oct 2005 20:18:43 +0200 + +libpng (1.2.8rel-4) unstable; urgency=low + + * makefile.patch: + + Use PNG_PRIVATE to get the list of private symbols as well. It + sucks, but they've been there for too long (closes: #329886). + + Use mawk instead of awk (closes: #329812). + * control: build-depend on mawk. + * rules: + + Use -O2, not -O3. + + Actually run the tests. + + Make use of x86_patches/ on x86 architectures. + * x86_patches/mmxbuild.patch: build MMX routines in pnggccrd.c. + * x86_patches/pnggccrd-PIC.patch: patch from Christian Aichinger + to make the assembly routines PIC-compatible. + * libpng12-0.shlibs: bump the shlibs version. + + -- Josselin Mouette Sun, 25 Sep 2005 15:25:34 +0200 + +libpng (1.2.8rel-3) unstable; urgency=low + + * Upload to unstable. + * Rename the source package to libpng. + + -- Josselin Mouette Thu, 22 Sep 2005 18:24:37 +0200 + +libpng3 (1.2.8rel-2) experimental; urgency=low + + * makefile.patch: + + now patch makefile.elf, so that only public symbols are truly + exported. + + shorten the differences as much as possible. + * rules: use makefile.elf now. + * Move libpng3 to oldlibs. + * Entirely remove libpng3-dev, making libpng12-dev provide it + (closes: #322051). + * poynton.patch: correct Charles Poynton's address (closes: #289437). + * Don't run the test when cross-building (closes: #285427). + * setjmp_error.patch: don't stop when we are not using _BSD_SOURCE, as + in this case this is harmless (closes: #299343). + * libpng3.postinst: removed, the fix is in sarge. + * Standards-version is 3.6.2. + * legacy_symbols.patch: still export png_read_destroy and + png_write_destroy, which are deprecated but should nevertheless be + accessible. + + -- Josselin Mouette Tue, 13 Sep 2005 02:07:16 +0200 + +libpng3 (1.2.8rel-1) unstable; urgency=medium + + * New upstream release. + * read_transformations.patch: removed, included upstream. + * libpng12-0.shlibs: Update to version 1.2.8rel, new flags seem to have been + added. + + -- Josselin Mouette Sat, 4 Dec 2004 15:54:53 +0100 + +libpng3 (1.2.8beta5-2) unstable; urgency=medium + + * read_transformations.patch: fix segmentation fault with latex + (closes: #281789) and totem (closes: #278618). + + -- Josselin Mouette Thu, 25 Nov 2004 16:49:28 +0100 + +libpng3 (1.2.8beta5-1) unstable; urgency=medium + + * New upstream release. + + Correct segmentation violation in png_combine_row. + Closes: #278526, #278917, #278921, #279258, #281789, #282368. + + -- Josselin Mouette Wed, 24 Nov 2004 13:53:49 +0100 + +libpng3 (1.2.7-1) unstable; urgency=medium + + * New upstream release (closes: #278308). + * libpng12-0.shlibs: update shlibs to version 1.2.7. + * Remove all security fixed, they are included upstream. + + -- Josselin Mouette Tue, 26 Oct 2004 13:40:25 +0200 + +libpng3 (1.2.5.0-9) unstable; urgency=high + + * CAN-2004-0954.patch: removed, this is already fixed in + CAN-2004-0597_0598_0599.patch. + + -- Josselin Mouette Tue, 19 Oct 2004 10:52:28 +0200 + +libpng3 (1.2.5.0-8) unstable; urgency=high + + * Switch to CDBS. + + Ship modifications and security fixes in debian/patches. + + debian/rules: rewritten. + + debian/control: build-depend on cdbs. + + debian/libpng12-0.shlibs: new. + * setjmp_error.patch: port explanation of the error when including setjmp.h + from libpng10, thanks Matijs van Zuijlen + (closes: #273473). + * CAN-2004-0954.patch: fix buffer overflow vulnerability in + png_handle_tRNS(). + * CAN-2004-0955.patch: fix integer arithmetic overflow vulnerability in + png_read_png(). + + -- Josselin Mouette Thu, 14 Oct 2004 20:06:08 +0200 + +libpng3 (1.2.5.0-7) unstable; urgency=high + + * pngrtran.c: applied upstream patch 4 to fix incorrect calculation of + buffer offsets [CAN-2004-0768]. + * png.h, pngpread.c, pngrutil.c: patch from Chris Evans + to fix several vulnerabilities (closes: #263500): + + libpng fails to properly check length on PNG data [CAN-2004-0597]. + + libpng "png_handle_sBIT" does not perform proper checks to avoid stack + buffer overflow [CAN-2004-0597]. + + libpng "png_handle_iCCP" possible NULL-pointer crash + [CAN-2004-0598]. + + libpng "png_handle_sPLT" possible integer overflow + [CAN-2004-0599]. + + libpng "png_read_png" does not properly handle a PNG with excessive + height (integer overflow) [CAN-2004-0599]. + + libpng progressive reading integer overflow [CAN-2004-0599]. + + -- Josselin Mouette Thu, 5 Aug 2004 12:37:32 +0200 + +libpng3 (1.2.5.0-6) unstable; urgency=high + + * pngerror.c: applied patch by Steve Grubb to + fix unintended memory access that could result in a crash of the + application linking against libpng [CAN-2004-0421]. + + -- Josselin Mouette Tue, 20 Apr 2004 13:39:02 +0200 + +libpng3 (1.2.5.0-5) unstable; urgency=low + + * Use debhelper 4.2, which generates the udeb appropriately. + * Update control and rules appropriately. + * Don't use ${shlibs:Depends} for the udeb, rather write the + dependencies by hand. + * Standards-version is 3.6.1. + + -- Josselin Mouette Fri, 20 Feb 2004 19:23:05 +0100 + +libpng3 (1.2.5.0-4) unstable; urgency=low + + * scripts/makefile.linux: use versioned dependencies + (closes: #155891). + * debian/rules: bump dependency for dh_makeshlibs. + * add the libpng.a link in libpng12-dev. + * Rework scripts/makefile.linux to make it more consistent. + * Update stuff in debian/ accordingly. + * Updated README.Debian. + + -- Josselin Mouette Tue, 10 Jun 2003 18:14:32 +0200 + +libpng3 (1.2.5.0-3) unstable; urgency=low + + * Make libpng3{,-dev} depend on libpng12-{0,dev} >= 1.2.5.0-2 instead + of the strict source version. + * Move /usr/share/doc/libpng3{,-dev} into symlinks at postinst time + when directories already exist. + * debian/rules: install correctly doc-base stuff. + * debian/libpng12-dev.doc-base: updated URIs. + + -- Josselin Mouette Tue, 6 May 2003 19:44:59 +0200 + +libpng3 (1.2.5.0-2) unstable; urgency=low + + * scripts/{makefile.linux,libpng-config-body.in}: correct the + libpng12-config script. + * Install correctly pkg-config stuff (closes: #191081). + * Make libpng12-dev conflict explicitly with libpng12-0-dev. + * Update README.Debian. + + -- Josselin Mouette Mon, 28 Apr 2003 19:42:15 +0200 + +libpng3 (1.2.5.0-1) unstable; urgency=low + + * New maintainer. + * Use real upstream tarball from 1.2.5 release. + * Use dpkg-source's way instead of dpatch for patching. + * A bit of rework in debian/rules, use dh_install and debhelper 4. + * Standards-version is 3.5.9. + * The -dev package is now named libpng12-dev (stop using the + libpkg-guide way). + * libpng3 is now arch-independent. + * Improved descriptions a bit. + * Don't supply libpngpf.3, it is not useful to programmers. + + -- Josselin Mouette Wed, 16 Apr 2003 18:41:02 +0200 + +libpng3 (1.2.5-11) unstable; urgency=low + + * Add udeb (closes: #174842) + * Add missing section on source files. + + -- Junichi Uekawa Mon, 31 Mar 2003 00:28:06 +0900 + +libpng3 (1.2.5-10) unstable; urgency=low + + * Rebuild with d-shlibs with fixed "libgcc_s1-dev" handling (for gcc-3.2). + (closes: #178070), build-depend on d-shlibs 0.10 or greater. + + -- Junichi Uekawa Fri, 24 Jan 2003 12:23:35 +0900 + +libpng3 (1.2.5-9) unstable; urgency=low + + * Use dpatch for patch system -- divide Debian patch, and security fix patch. + * Standards-Version: 3.5.8 + * add manual page libpng-config.1 and libpng12-config.1 + + -- Junichi Uekawa Wed, 15 Jan 2003 17:55:17 +0900 + +libpng3 (1.2.5-8) unstable; urgency=low + + * Sorry folks, I made a mistake. + * Forward-port of patch from the Security Team, + really apply what was there. (closes: #172868,#172871) + + -- Junichi Uekawa Fri, 13 Dec 2002 16:12:01 +0900 + +libpng3 (1.2.5-7) unstable; urgency=high + + * Forward-port of patch from the Security Team + * Applied patch to pngrtran.c by Glenn Randers-Pehrson + to fix a buffer overrun. + + -- Junichi Uekawa Thu, 12 Dec 2002 20:36:28 +0900 + +libpng3 (1.2.5-6) unstable; urgency=low + + * Typo in scripts/makefile.linux. + Mistake. -lz and -lm weren't happening. + * Change LDFLAGS to not list -lz -lm, so that testsuite will catch such error. + * set prefix=/usr/ in scripts/makefile.linux, since it was set to usr/local. + + -- Junichi Uekawa Wed, 30 Oct 2002 20:54:54 +0900 + +libpng3 (1.2.5-5) unstable; urgency=low + + * scripts/makefile.linux: LIBADDFLAGS introduced, for shared library lib + additional + flags, and use that for shared library. + - this should fix build failure (closes: #166704) + Thanks Daniel Schepler for reporting. + * updated copyright file to note that libpng3 in Debian is patched to + link with -lz -lm. + + -- Junichi Uekawa Mon, 28 Oct 2002 12:25:57 +0900 + +libpng3 (1.2.5-4) unstable; urgency=low + + * Trying to fix the problem that libpng3 seems to be not linked against libz. + LDFLAGS was defined but not being used. + Thanks Mike Furr for reporting (closes: #166489) + + -- Junichi Uekawa Sun, 27 Oct 2002 16:07:54 +0900 + +libpng3 (1.2.5-3) unstable; urgency=low + + * Fixed description, I mixed up the -devel and non-devel + packages. + * updated README.Debian. + + -- Junichi Uekawa Thu, 24 Oct 2002 18:56:34 +0900 + +libpng3 (1.2.5-2) unstable; urgency=low + + * careless mistake :( + * reinstall libpng.so symlink in libpng-12-0-dev package. + Otherwise other packages won't build ... + + -- Junichi Uekawa Wed, 23 Oct 2002 16:46:23 +0900 + +libpng3 (1.2.5-1) unstable; urgency=low + + * New upstream version (closes: #163425) + * re-patched makefile.linux to work with system zlib, + added workaround to set CFLAGS, and remove rpath settings from LDFLAGS + * Use debhelper. + * No longer create /usr/doc symlinks. + * Standards-Version: 3.5.7 + + -- Junichi Uekawa Tue, 22 Oct 2002 21:05:33 +0900 + +libpng3 (1.2.1-5) unstable; urgency=low + + * Not yet released. + * Change priority from standard to optional. + + -- Junichi Uekawa Sun, 15 Sep 2002 15:39:12 +0900 + +libpng3 (1.2.1-4) unstable; urgency=low + + * change -dev dependency of libc6-dev to libc-dev + + -- Junichi Uekawa Fri, 13 Sep 2002 18:40:53 +0900 + +libpng3 (1.2.1-3) unstable; urgency=low + + * Security fix backported from 1.2.4. Check bounds of variables. + (closes: #155403) + + -- Junichi Uekawa Wed, 7 Aug 2002 17:30:32 +0900 + +libpng3 (1.2.1-2) unstable; urgency=low + + * New maintainer (closes: #151343) + * apply buffer overflow patch for interlaced png files (closes: #150595) + * update description for libpng3-dev. + * change libpng-dev to libpng3-dev + + -- Junichi Uekawa Thu, 25 Jul 2002 16:28:24 +0900 + +libpng3 (1.2.1-1.1) unstable; urgency=low + + * NMU + * Provides: libpng2-dev has been changed to Provides: libpng3-dev + libpng2-dev can be put back in when some kind of sane transition has + finished. + (closes: #128384, #128871, #129268, #129269) + + -- Junichi Uekawa Tue, 12 Feb 2002 02:31:53 +0900 + +libpng3 (1.2.1-1) unstable; urgency=low + + * New upstream version; closes: #125679. + * New source package name: libpng3. + * Renamed libpng-dev to libpng-dev to avoid having to maintain several + development packages (the -dev is source compatible). + * Moved png.5 into the -dev package. + * Added a Replaces: libpng2 to libpng-dev so that we can steal the png.5 + manpage without fuss. + * Changed debian/shlibs for libpng3. + * Compress examples/pngtest.c. + + -- Philippe Troin Tue, 18 Dec 2001 20:01:04 -0800 + +libpng (1.0.12-3) unstable; urgency=low + + * Moved the png.5 manpage to the dev package to allow multiple libpng + packages installed at the same time. + + -- Philippe Troin Tue, 18 Dec 2001 23:58:25 -0800 + +libpng (1.0.12-2) unstable; urgency=low + + * Changed libpng2-dev's section to devel to resync with override file. + * Fixed upstream version detection in debian/rules; closes: #105931. + + -- Philippe Troin Sun, 29 Jul 2001 11:52:40 -0700 + +libpng (1.0.12-1) unstable; urgency=low + + * New upstream release; closes: #105354. + * Bumped dependency information in debian/shlibs to libpng >= 1.0.12 + since there were some non-backwards compatible changes to the API. + * Added support for DEB_BUILD_OPTIONS and get-orig-source to debian/rules. + * Added call to ldconfig on postrm's remove. + * Removed INSTALL file from /usr/share/doc/libpng2. + * Bumped standards version to 3.5.5.0. + + -- Philippe Troin Tue, 17 Jul 2001 23:32:36 -0700 + +libpng (1.0.11-1) unstable; urgency=low + + * New upstream release. + + -- Philippe Troin Wed, 2 May 2001 20:43:51 -0700 + +libpng (1.0.10-2) unstable; urgency=low + + * Force recompile because of bad sparc package. + * Libpng2's priority changed to standard to comply with the override file. + + -- Philippe Troin Tue, 24 Apr 2001 11:49:31 -0700 + +libpng (1.0.10-1) unstable; urgency=low + + * New upstream release. + * Changed shlib to depend on libpng2 (>= 2.0.10) because of + non-backwards compatible changes. + + -- Philippe Troin Sun, 22 Apr 2001 22:48:30 -0700 + +libpng (1.0.8-1) unstable; urgency=low + + * Changed the doc-base type from 'test' to 'text'; closes: #59877. + * New upstream relase 1.0.8; closes: #70464. + * Updated copyright notice. + * Removed Y2kINFO from the doc directory. + * Added pngtest.c in examples; closes: #65229. + * Updated to standards version 3.2.1.0. + * Added build-depends line in control file; closes: #69291. + + -- Philippe Troin Mon, 11 Sep 2000 23:19:12 -0700 + +libpng (1.0.5-1) frozen unstable; urgency=low + + * Maintainer upload (closes: #48244, #48246). + * Added some extra explanations for the setjmp.h mess (closes: #56759), + see pngconf.h for details. + + -- Philippe Troin Mon, 28 Feb 2000 13:53:22 -0800 + +libpng (1.0.5-0.1) unstable; urgency=low + + * Non-maintainer release. + * New upstream release. (closes:Bug#48244). + * Remove versioned depend from shlibs (closes:Bug#48246). + + -- Joel Klecker Sat, 30 Oct 1999 08:12:53 -0700 + +libpng (1.0.3-1) unstable; urgency=low + + * New upstream version (1.0.3); Closes: #31870, #46333. + * Maintainer upload, closes NMU bugs; Closes: #28412, #31523, #31690. + * FHS compliant. + * New standard-version 3.0.1. + * Lintian clean. + * Removed temporary zlib1g line in control file (used to be a bug in + zlib1g). + * Moved the documentation file to the -dev package. + * Register documentation file to doc-base. + * Fontified man pages with addformat script; Closes #38680. + + -- Philippe Troin Mon, 4 Oct 1999 18:59:42 -0700 + +libpng (1.0.2b-0.1) frozen unstable; urgency=low + + * New upstream (bug-fix only) version. + (Should fix bugs #31690滼, since I can't reproduce them) + From the author: + "I have recently uploaded libpng-1.0.2b to + ftp://swrinde.nde.swri.edu/pub/png-group/src + I plan to release it as libpng-1.0.3 in a + few days, but would like to hear whether it + fixes the problems with GNOME. + It restores a few lines of code that were + inadvertently deleted from pngread.c, which + seems to be the cause of problems with adding + an alpha channel (which you fixed by downgrading + to libpng-1.0.1's pngread.c)." + [Glenn Randers-Pehrson ] + * Masquerade version number to 1.0.3 to make Imlib & Co. happy. + + -- Vincent Renardias Mon, 11 Jan 1999 06:27:55 +0100 + +libpng (1.0.2-1.1) frozen unstable; urgency=low + + * Fix Important bug #28412 + (using pngread.c from libpng-1.0.1 did the trick). + + -- Vincent Renardias Wed, 6 Jan 1999 19:00:15 +0100 + +libpng (1.0.2-1) unstable; urgency=low + + * Maintainer release (to change a bit). + * Pristine sources. + * Libpng2-dev includes example.c (fixes bug #10315). + * Changed control file to reflect difference with libpng0g (fixes #23795). + * Recompiled (should fix the zlib1g missing symbol, bug #24450). + * Added -D_REENTRANT also to static library. + * Added a dependency upon zlib1g >= 1.1.2 (otherwise we get a missing + symbol) (fixes bug #24450). + + -- Philippe Troin Tue, 22 Sep 1998 00:17:16 -0700 + +libpng (1.0.2-0.1) unstable; urgency=low + + * Non-maintainer release + * New upstream version + + -- Karl M. Hegbloom Tue, 4 Aug 1998 23:47:00 -0700 + +libpng (1.0.1-0.2) unstable; urgency=medium + + * debian/rules (binary-arch): don't call install with -s as an + argument when installing a shared library; it doesn't know to use + --strip-unneeded, and we call strip separately later anyway. + * scripts/makefile.lnx (CFLAGS): killed i386-isms. + * scripts/makefile.lnx: compiled shared libraries with -D_REENTRANT. + (The above fixes are from James Troup, who yet again, alerted me to + my screwups ;) + * debian/postinst: only call ldconfig if $1 = configure. + + -- Joel Klecker Wed, 17 Jun 1998 10:25:27 -0700 + +libpng (1.0.1-0.1) unstable; urgency=low + + * New upstream bug fix release. + * Include man pages. + + -- Joel Klecker Wed, 06 May 1998 08:51:49 -0700 + +libpng (1.0.0-0.1) unstable; urgency=low + + * Non-maintainer Release. + * New Upstream Release. + * Changed source package name to `libpng'. + * Added `-f makefile.lnx' to make invocations in debian/rules. + * Removed `ldconfig' call from postrm. + + -- Joel Klecker Wed, 04 Mar 1998 17:58:05 -0800 + +libpng0 (0.96-5) unstable; urgency=low + + * Removed executable permissions on shared libs (fixes bug #15478). + * Updated Standards-Version to 2.3.0.1. + + -- Philippe Troin Sun, 25 Jan 1998 13:19:51 -0800 + +libpng0 (0.96-4) unstable; urgency=low + + * Shared libraries are stripped with --strip-unneeded and static + libraries with --strip-debug (fixes bug #15669). + * Made the build strip non-i386 specific (patch by James Troup) (fixes + bug #13832). + * Removed the dependency between the libc5 and libc6 versions. + + -- Philippe Troin Sun, 18 Jan 1998 22:37:19 -0800 + +libpng0 (0.96-3) unstable; urgency=low + + * Libc6 compilation. + + -- Philippe Troin Tue, 23 Sep 1997 21:38:42 -0700 + +libpng0 (0.96-2) unstable; urgency=low + + * Fixed permissions in /usr/doc/libpng0 (fixes bug #10540). + + -- Philippe Troin Sun, 15 Jun 1997 13:18:38 -0700 + +libpng0 (0.96-1) unstable; urgency=low + + * New upstream sources. + + -- Philippe Troin Thu, 12 Jun 1997 23:32:29 -0700 + +libpng0 (0.95b-1) unstable; urgency=low + + * New maintainer. + * Upgraded to upstream version 0.95b. + * Make debian/rules version independent. + * Debian/rules clean now removes substvars. + * Bumped the shlibs version to 0.95 as some incompatibilities were + introduced between 0.89 and 0.90. + * Added the Section: and Priority: fields to the control file (fixes bug + #6370). + * Now /usr/doc/libpng0 contains various info and the debian change log + stuff (fixes bug #7925). + * Added -D_REENTRANT compilation flag. + + -- Philippe Troin Fri, 18 Apr 1997 14:44:09 -0700 + +libpng (0.89c-6) unstable; urgency=low + + * Moved shlibs file to correct location + + -- Michael Alan Dorman Sun, 15 Dec 1996 13:03:19 -0500 + +libpng (0.89c-5) unstable; urgency=low + + * Added shlibs file + + -- Michael Alan Dorman Sat, 23 Nov 1996 16:23:06 -0500 + +libpng (0.89c-4) unstable; urgency=low + + * Now stripping shared libraries (Bug#5134) + + -- Michael Alan Dorman Sat, 23 Nov 1996 12:05:06 -0500 + +libpng (0.89c-3) unstable; urgency=low + + * Corrected maintainers address + + -- Michael Alan Dorman Mon, 23 Sep 1996 12:52:03 -0400 + +libpng (0.89c-2) unstable; urgency=low + + * Accommodate the fact that dpkg-source doesn't properly preserve + permissions on scripts when extracting package. (Bug#4513) + + -- Michael Alan Dorman Mon, 23 Sep 1996 12:34:35 -0400 + +libpng (0.89c-1) unstable; urgency=low + + * New upstream version. + * Moved to new source packaging format. + + -- Michael Alan Dorman Thu, 12 Sep 1996 15:19:35 -0400 diff --git a/changelogs b/changelogs new file mode 100644 index 0000000..da278be --- /dev/null +++ b/changelogs @@ -0,0 +1 @@ +CHANGES diff --git a/clean b/clean new file mode 100644 index 0000000..90a21dc --- /dev/null +++ b/clean @@ -0,0 +1 @@ +pngtest-static diff --git a/control b/control new file mode 100644 index 0000000..5dfe301 --- /dev/null +++ b/control @@ -0,0 +1,69 @@ +Source: libpng1.6 +Section: libs +Priority: optional +Maintainer: Maintainers of libpng1.6 packages +Uploaders: Nobuhiro Iwamatsu , + Gianfranco Costamagna , + Tobias Frost +Build-Depends: debhelper-compat (= 13), cmake, zlib1g-dev, mawk +Standards-Version: 4.7.3 +Vcs-Browser: https://salsa.debian.org/debian/libpng1.6 +Vcs-Git: https://salsa.debian.org/debian/libpng1.6.git +Homepage: http://libpng.org/pub/png/libpng.html + +Package: libpng16-16t64 +Provides: ${t64:Provides} +Replaces: libpng16-16 +Breaks: libpng16-16 (<< ${source:Version}) +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: PNG library - runtime (version 1.6) + libpng is a library implementing an interface for reading and writing + PNG (Portable Network Graphics) format files. + . + This package contains the runtime library files needed to run software + using libpng. + +Package: libpng-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, libpng16-16t64 (= ${binary:Version}), zlib1g-dev +Conflicts: libpng12-0-dev, libpng12-dev, libpng2-dev, libpng3-dev +Breaks: libpng16-dev (<< 1.6.20-3), libpng16-devtools (<< 1.6.21-1) +Replaces: libpng16-dev (<< 1.6.20-3), libpng16-devtools (<< 1.6.21-1) +Recommends: libpng-tools +Description: PNG library - development (version 1.6) + libpng is a library implementing an interface for reading and writing + PNG (Portable Network Graphics) format files. + . + This package contains the header and development files needed to build + programs and packages using libpng. + +Package: libpng-tools +Section: libdevel +Architecture: any +Multi-Arch: foreign +Depends: ${shlibs:Depends}, ${misc:Depends}, libpng16-16t64 (= ${binary:Version}) +Breaks: libpng16-tools (<< 1.6.21-1) +Replaces: libpng16-tools (<< 1.6.21-1) +Description: PNG library - tools (version 1.6) + libpng is a library implementing an interface for reading and writing + PNG (Portable Network Graphics) format files. + . + This package contains a program to interact with libpng from the + command line. + +Package: libpng16-16-udeb +Package-Type: udeb +Build-Profiles: +Section: debian-installer +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: PNG library - minimal runtime library (version 1.6) + libpng is a library implementing an interface for reading and writing + PNG (Portable Network Graphics) format files. + . + This package provides the minimal libpng runtime library needed for + the debian-installer. diff --git a/copyright b/copyright new file mode 100644 index 0000000..0457acb --- /dev/null +++ b/copyright @@ -0,0 +1,324 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libpng +Source: http://www.libpng.org/pub/png/ + +Files: * +Copyright: 1995-2026 The PNG Reference Library Authors. + 1998-2018 Glenn Randers-Pehrson + 2018-2026 Cosmin Truta +License: libpng + +Files: arm/* +Copyright: 2018-2025 Cosmin Truta + 2017-2018 Arm Holdings. All rights reserved. + 2014,2016 Glenn Randers-Pehrson +License: libpng + +Files: ci/* +Copyright: 2023-2024 Cosmin Truta +License: expat + +Files: contrib/pngexif/* +Copyright: 2017-2020 Cosmin Truta +License: expat + +Files: contrib/pngminus/* +Copyright: 1999-2019 Willem van Schaik + 2018-2024 Cosmin Truta +License: expat + +Files: contrib/tools/* +Copyright: 2013-2024 John Cunningham Bowler + 2015 Glenn Randers-Pehrson +License: libpng + +Files: pngwutil.c pngstruct.h pngwrite.c pnginfo.h pngrio.c png.h + pngread.c pngwio.c pngrutil.c pngmem.c pngget.c pngtest.c + pngrtran.c pngpriv.h pngset.c pngpread.c + pngdebug.h pngerror.c pngwtran.c png.c pngtrans.c example.c +Copyright: 1996, 1997 Andreas Dilger + 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + 1998-2018 Glenn Randers-Pehrson + 2018-2025 Cosmin Truta +License: libpng + +Files: contrib/gregbook/* + contrib/visupng/resource.h + contrib/visupng/cexcept.h +Copyright: 2000-2008 Adam M. Costello and Cosmin Truta + 1998-2017 Greg Roelofs +License: GPL-2+ or BSD-like-with-advertising-clause + +Files: contrib/visupng/PngFile.c contrib/visupng/PngFile.h + contrib/visupng/VisualPng.c +Copyright: 2000,2017 Willem van Schaik +License: libpng + +Files: contrib/libtests/tarith.c +Copyright: 2011-2013 John Cunningham Bowler + 2021 Cosmin Truta +License: libpng + +Files: contrib/oss-fuzz/* +Copyright: 2017-2018 Glenn Randers-Pehrson + 2016 Google Inc. + 2015 The Chromium Authors. +License: libpng OR Apache-2.0 OR BSD-3-clause + +Files: contrib/oss-fuzz/Dockerfile +Copyright: 2016 Google Inc. +License: Apache-2.0 + +Files: riscv/* +Copyright: 2023 Google LLC +License: libpng + +Files: debian/* +Copyright: 2001 Philippe Troin + 2002 Junichi Uekawa + 2003 Josselin Mouette + 2006-2009 Anibal Monsalve Salazar + 2011-2014 Nobuhiro Iwamatsu + 2016-2026 Gianfranco Costamagna + 2016-2026 Tobias Frost +License: GPL-2+ + +License: expat + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +License: BSD-like-with-advertising-clause + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute + it freely, subject to the following restrictions: + . + 1. Redistributions of source code must retain the above copyright + notice, disclaimer, and this list of conditions. + 2. Redistributions in binary form must reproduce the above copyright + notice, disclaimer, and this list of conditions in the documenta- + tion and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + . + This product includes software developed by Greg Roelofs + and contributors for the book, "PNG: The Definitive Guide," + published by O'Reilly and Associates. + +License: libpng + Here is the copyright and license for libpng: + . + libpng versions 1.2.6, August 15, 2004, through 1.5.2, March 31, 2011, are + Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.2.5 + with the following individual added to the list of Contributing Authors + . + Cosmin Truta + . + libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are + Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.0.6 + with the following individuals added to the list of Contributing Authors + . + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + . + and with the following additions to the disclaimer: + . + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + . + libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-0.96, + with the following individuals added to the list of Contributing Authors: + . + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + . + (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + . + Authors and maintainers: + libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + libpng versions 0.97, January 1998, through 1.2.26 - April 2, 2008: Glenn + See also "Contributing Authors", below. + . + . + COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + . + If you modify libpng you may insert additional notices immediately following + this sentence. + . + libpng versions 1.2.6, August 15, 2004, through 1.2.26, April 2, 2008, are + Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.2.5 + with the following individual added to the list of Contributing Authors: + . + Cosmin Truta + . + libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are + Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-1.0.6 + with the following individuals added to the list of Contributing Authors: + . + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + . + and with the following additions to the disclaimer: + . + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + . + libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are + distributed according to the same disclaimer and license as libpng-0.96, + with the following individuals added to the list of Contributing Authors: + . + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + . + libpng versions 0.89, June 1996, through 0.96, May 1997, are + Copyright (c) 1996, 1997 Andreas Dilger + Distributed according to the same disclaimer and license as libpng-0.88, + with the following individuals added to the list of Contributing Authors: + . + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + . + libpng versions 0.5, May 1995, through 0.88, January 1996, are + Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + . + For the purposes of this copyright and license, "Contributing Authors" + is defined as the following set of individuals: + . + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + . + The PNG Reference Library is supplied "AS IS". The Contributing Authors + and Group 42, Inc. disclaim all warranties, expressed or implied, + including, without limitation, the warranties of merchantability and of + fitness for any purpose. The Contributing Authors and Group 42, Inc. + assume no liability for direct, indirect, incidental, special, exemplary, + or consequential damages, which may result from the use of the PNG + Reference Library, even if advised of the possibility of such damage. + . + Permission is hereby granted to use, copy, modify, and distribute this + source code, or portions hereof, for any purpose, without fee, subject + to the following restrictions: + . + 1. The origin of this source code must not be misrepresented. + . + 2. Altered versions must be plainly marked as such and + must not be misrepresented as being the original source. + . + 3. This Copyright notice may not be removed or altered from + any source or altered source distribution. + . + The Contributing Authors and Group 42, Inc. specifically permit, without + fee, and encourage the use of this source code as a component to + supporting the PNG file format in commercial products. If you use this + source code in a product, acknowledgment is not required but would be + appreciated. + . + contrib/pngsuite: + -------- + (c) Willem van Schaik, 1999, 2011 + . + Permission to use, copy, modify, and distribute these images for any + purpose and without fee is hereby granted. + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the full text of the Apache License + can be found in the file `/usr/share/common-licenses/Apache-2.0'. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + diff --git a/docs b/docs new file mode 100644 index 0000000..5eb1f45 --- /dev/null +++ b/docs @@ -0,0 +1,3 @@ +libpng-manual.txt +README +TODO diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..e9df14f --- /dev/null +++ b/gbp.conf @@ -0,0 +1,5 @@ +[DEFAULT] +upstream-branch=upstream +debian-branch=master +pristine-tar = True +sign-tags = True diff --git a/libpng-dev.examples b/libpng-dev.examples new file mode 100644 index 0000000..5c69567 --- /dev/null +++ b/libpng-dev.examples @@ -0,0 +1,3 @@ +example.c +pngtest.c +pngtest.png diff --git a/libpng-dev.install b/libpng-dev.install new file mode 100644 index 0000000..e0138e5 --- /dev/null +++ b/libpng-dev.install @@ -0,0 +1,11 @@ +usr/bin/libpng-config +usr/bin/libpng16-config +usr/include +usr/lib/*/cmake +usr/lib/*/libpng +usr/lib/*/pkgconfig +usr/lib/*/libpng.a +usr/lib/*/libpng16.a +usr/lib/*/libpng.so +usr/lib/*/libpng16.so +usr/share/man diff --git a/libpng-dev.links b/libpng-dev.links new file mode 100644 index 0000000..df10316 --- /dev/null +++ b/libpng-dev.links @@ -0,0 +1,2 @@ +/usr/include/libpng16 /usr/include/libpng +/usr/share/man/man1/libpng16-config.1.gz /usr/share/man/man1/libpng-config.1.gz diff --git a/libpng-dev.manpages b/libpng-dev.manpages new file mode 100644 index 0000000..822ed92 --- /dev/null +++ b/libpng-dev.manpages @@ -0,0 +1 @@ +debian/libpng16-config.1 diff --git a/libpng-tools.install b/libpng-tools.install new file mode 100644 index 0000000..4b26ab3 --- /dev/null +++ b/libpng-tools.install @@ -0,0 +1,2 @@ +usr/bin/png-fix-itxt +usr/bin/pngfix diff --git a/libpng16-16-udeb.install b/libpng16-16-udeb.install new file mode 100644 index 0000000..07f93cb --- /dev/null +++ b/libpng16-16-udeb.install @@ -0,0 +1 @@ +usr/lib/*/libpng16.so.* usr/lib diff --git a/libpng16-16t64.doc-base b/libpng16-16t64.doc-base new file mode 100644 index 0000000..aa9e51f --- /dev/null +++ b/libpng16-16t64.doc-base @@ -0,0 +1,25 @@ +Document: libpng16 +Title: A description on how to use and modify libpng (version 1.5.X) +Author: Glenn Randers-Pehrson +Abstract: This file describes how to use and modify the PNG reference library + (known as libpng) for your own use. There are five sections to this + file: introduction, structures, reading, writing, and modification and + configuration notes for various special platforms. In addition to this + file, example.c is a good starting point for using the library, as + it is heavily commented and should include everything most people + will need. We assume that libpng is already installed; see the + INSTALL file for instructions on how to install libpng. + . + Libpng was written as a companion to the PNG specification, as a way + of reducing the amount of time and effort it takes to support the PNG + file format in application programs. The PNG specification is available + as RFC 2083 and as a + W3C Recommendation . Some + additional chunks are described in the special-purpose public chunks + documents at . Other information + about PNG, and the latest version of libpng, can be found at the PNG home + page, . +Section: Programming + +Format: text +Files: /usr/share/doc/libpng16-16t64/libpng-manual.txt.gz diff --git a/libpng16-16t64.docs b/libpng16-16t64.docs new file mode 100644 index 0000000..aa382c1 --- /dev/null +++ b/libpng16-16t64.docs @@ -0,0 +1,5 @@ +README +TODO +ANNOUNCE +#KNOWNBUG +libpng-manual.txt diff --git a/libpng16-16t64.install b/libpng16-16t64.install new file mode 100644 index 0000000..8d9226f --- /dev/null +++ b/libpng16-16t64.install @@ -0,0 +1 @@ +usr/lib/*/libpng16.so.* diff --git a/libpng16-16t64.lintian-overrides b/libpng16-16t64.lintian-overrides new file mode 100644 index 0000000..244d289 --- /dev/null +++ b/libpng16-16t64.lintian-overrides @@ -0,0 +1 @@ +libpng16-16t64: package-name-doesnt-match-sonames libpng16-16 diff --git a/libpng16-16t64.symbols b/libpng16-16t64.symbols new file mode 100644 index 0000000..c37b2fe --- /dev/null +++ b/libpng16-16t64.symbols @@ -0,0 +1,259 @@ +libpng16.so.16 libpng16-16t64 #MINVER# +* Build-Depends-Package: libpng-dev + PNG16_0@PNG16_0 1.6.46 + png_access_version_number@PNG16_0 1.6.46 + png_set_sig_bytes@PNG16_0 1.6.46 + png_sig_cmp@PNG16_0 1.6.46 + png_create_read_struct@PNG16_0 1.6.46 + png_create_write_struct@PNG16_0 1.6.46 + png_get_compression_buffer_size@PNG16_0 1.6.46 + png_set_compression_buffer_size@PNG16_0 1.6.46 + png_set_longjmp_fn@PNG16_0 1.6.46 + png_longjmp@PNG16_0 1.6.46 + png_reset_zstream@PNG16_0 1.6.46 + png_create_read_struct_2@PNG16_0 1.6.46 + png_create_write_struct_2@PNG16_0 1.6.46 + png_write_sig@PNG16_0 1.6.46 + png_write_chunk@PNG16_0 1.6.46 + png_write_chunk_start@PNG16_0 1.6.46 + png_write_chunk_data@PNG16_0 1.6.46 + png_write_chunk_end@PNG16_0 1.6.46 + png_create_info_struct@PNG16_0 1.6.46 + png_info_init_3@PNG16_0 1.6.46 + png_write_info_before_PLTE@PNG16_0 1.6.46 + png_write_info@PNG16_0 1.6.46 + png_read_info@PNG16_0 1.6.46 + png_convert_to_rfc1123@PNG16_0 1.6.46 + png_convert_to_rfc1123_buffer@PNG16_0 1.6.46 + png_convert_from_struct_tm@PNG16_0 1.6.46 + png_convert_from_time_t@PNG16_0 1.6.46 + png_set_expand@PNG16_0 1.6.46 + png_set_expand_gray_1_2_4_to_8@PNG16_0 1.6.46 + png_set_palette_to_rgb@PNG16_0 1.6.46 + png_set_tRNS_to_alpha@PNG16_0 1.6.46 + png_set_expand_16@PNG16_0 1.6.46 + png_set_bgr@PNG16_0 1.6.46 + png_set_gray_to_rgb@PNG16_0 1.6.46 + png_set_rgb_to_gray@PNG16_0 1.6.46 + png_set_rgb_to_gray_fixed@PNG16_0 1.6.46 + png_get_rgb_to_gray_status@PNG16_0 1.6.46 + png_build_grayscale_palette@PNG16_0 1.6.46 + png_set_alpha_mode@PNG16_0 1.6.46 + png_set_alpha_mode_fixed@PNG16_0 1.6.46 + png_set_strip_alpha@PNG16_0 1.6.46 + png_set_swap_alpha@PNG16_0 1.6.46 + png_set_invert_alpha@PNG16_0 1.6.46 + png_set_filler@PNG16_0 1.6.46 + png_set_add_alpha@PNG16_0 1.6.46 + png_set_swap@PNG16_0 1.6.46 + png_set_packing@PNG16_0 1.6.46 + png_set_packswap@PNG16_0 1.6.46 + png_set_shift@PNG16_0 1.6.46 + png_set_interlace_handling@PNG16_0 1.6.46 + png_set_invert_mono@PNG16_0 1.6.46 + png_set_background@PNG16_0 1.6.46 + png_set_background_fixed@PNG16_0 1.6.46 + png_set_scale_16@PNG16_0 1.6.46 + png_set_strip_16@PNG16_0 1.6.46 + png_set_quantize@PNG16_0 1.6.46 + png_set_gamma@PNG16_0 1.6.46 + png_set_gamma_fixed@PNG16_0 1.6.46 + png_set_flush@PNG16_0 1.6.46 + png_write_flush@PNG16_0 1.6.46 + png_start_read_image@PNG16_0 1.6.46 + png_read_update_info@PNG16_0 1.6.46 + png_read_rows@PNG16_0 1.6.46 + png_read_row@PNG16_0 1.6.46 + png_read_image@PNG16_0 1.6.46 + png_write_row@PNG16_0 1.6.46 + png_write_rows@PNG16_0 1.6.46 + png_write_image@PNG16_0 1.6.46 + png_write_end@PNG16_0 1.6.46 + png_read_end@PNG16_0 1.6.46 + png_destroy_info_struct@PNG16_0 1.6.46 + png_destroy_read_struct@PNG16_0 1.6.46 + png_destroy_write_struct@PNG16_0 1.6.46 + png_set_crc_action@PNG16_0 1.6.46 + png_set_filter@PNG16_0 1.6.46 + png_set_filter_heuristics@PNG16_0 1.6.46 + png_set_filter_heuristics_fixed@PNG16_0 1.6.46 + png_set_compression_level@PNG16_0 1.6.46 + png_set_compression_mem_level@PNG16_0 1.6.46 + png_set_compression_strategy@PNG16_0 1.6.46 + png_set_compression_window_bits@PNG16_0 1.6.46 + png_set_compression_method@PNG16_0 1.6.46 + png_set_text_compression_level@PNG16_0 1.6.46 + png_set_text_compression_mem_level@PNG16_0 1.6.46 + png_set_text_compression_strategy@PNG16_0 1.6.46 + png_set_text_compression_window_bits@PNG16_0 1.6.46 + png_set_text_compression_method@PNG16_0 1.6.46 + png_init_io@PNG16_0 1.6.46 + png_set_error_fn@PNG16_0 1.6.46 + png_get_error_ptr@PNG16_0 1.6.46 + png_set_write_fn@PNG16_0 1.6.46 + png_set_read_fn@PNG16_0 1.6.46 + png_get_io_ptr@PNG16_0 1.6.46 + png_set_read_status_fn@PNG16_0 1.6.46 + png_set_write_status_fn@PNG16_0 1.6.46 + png_set_mem_fn@PNG16_0 1.6.46 + png_get_mem_ptr@PNG16_0 1.6.46 + png_set_read_user_transform_fn@PNG16_0 1.6.46 + png_set_write_user_transform_fn@PNG16_0 1.6.46 + png_set_user_transform_info@PNG16_0 1.6.46 + png_get_user_transform_ptr@PNG16_0 1.6.46 + png_get_current_row_number@PNG16_0 1.6.46 + png_get_current_pass_number@PNG16_0 1.6.46 + png_set_read_user_chunk_fn@PNG16_0 1.6.46 + png_get_user_chunk_ptr@PNG16_0 1.6.46 + png_set_progressive_read_fn@PNG16_0 1.6.46 + png_get_progressive_ptr@PNG16_0 1.6.46 + png_process_data@PNG16_0 1.6.46 + png_process_data_pause@PNG16_0 1.6.46 + png_process_data_skip@PNG16_0 1.6.46 + png_progressive_combine_row@PNG16_0 1.6.46 + png_malloc@PNG16_0 1.6.46 + png_calloc@PNG16_0 1.6.46 + png_malloc_warn@PNG16_0 1.6.46 + png_free@PNG16_0 1.6.46 + png_free_data@PNG16_0 1.6.46 + png_data_freer@PNG16_0 1.6.46 + png_malloc_default@PNG16_0 1.6.46 + png_free_default@PNG16_0 1.6.46 + png_error@PNG16_0 1.6.46 + png_chunk_error@PNG16_0 1.6.46 + png_warning@PNG16_0 1.6.46 + png_chunk_warning@PNG16_0 1.6.46 + png_benign_error@PNG16_0 1.6.46 + png_chunk_benign_error@PNG16_0 1.6.46 + png_set_benign_errors@PNG16_0 1.6.46 + png_get_valid@PNG16_0 1.6.46 + png_get_rowbytes@PNG16_0 1.6.46 + png_get_rows@PNG16_0 1.6.46 + png_set_rows@PNG16_0 1.6.46 + png_get_channels@PNG16_0 1.6.46 + png_get_image_width@PNG16_0 1.6.46 + png_get_image_height@PNG16_0 1.6.46 + png_get_bit_depth@PNG16_0 1.6.46 + png_get_color_type@PNG16_0 1.6.46 + png_get_filter_type@PNG16_0 1.6.46 + png_get_interlace_type@PNG16_0 1.6.46 + png_get_compression_type@PNG16_0 1.6.46 + png_get_pixels_per_meter@PNG16_0 1.6.46 + png_get_x_pixels_per_meter@PNG16_0 1.6.46 + png_get_y_pixels_per_meter@PNG16_0 1.6.46 + png_get_pixel_aspect_ratio@PNG16_0 1.6.46 + png_get_pixel_aspect_ratio_fixed@PNG16_0 1.6.46 + png_get_x_offset_pixels@PNG16_0 1.6.46 + png_get_y_offset_pixels@PNG16_0 1.6.46 + png_get_x_offset_microns@PNG16_0 1.6.46 + png_get_y_offset_microns@PNG16_0 1.6.46 + png_get_signature@PNG16_0 1.6.46 + png_get_bKGD@PNG16_0 1.6.46 + png_set_bKGD@PNG16_0 1.6.46 + png_get_cHRM@PNG16_0 1.6.46 + png_get_cHRM_XYZ@PNG16_0 1.6.46 + png_get_cHRM_fixed@PNG16_0 1.6.46 + png_get_cHRM_XYZ_fixed@PNG16_0 1.6.46 + png_set_cHRM@PNG16_0 1.6.46 + png_set_cHRM_XYZ@PNG16_0 1.6.46 + png_set_cHRM_fixed@PNG16_0 1.6.46 + png_set_cHRM_XYZ_fixed@PNG16_0 1.6.46 + png_get_cICP@PNG16_0 1.6.46 + png_set_cICP@PNG16_0 1.6.46 + png_get_cLLI@PNG16_0 1.6.46 + png_get_cLLI_fixed@PNG16_0 1.6.46 + png_set_cLLI@PNG16_0 1.6.46 + png_set_cLLI_fixed@PNG16_0 1.6.46 + png_get_eXIf@PNG16_0 1.6.46 + png_set_eXIf@PNG16_0 1.6.46 + png_get_eXIf_1@PNG16_0 1.6.46 + png_set_eXIf_1@PNG16_0 1.6.46 + png_get_gAMA@PNG16_0 1.6.46 + png_get_gAMA_fixed@PNG16_0 1.6.46 + png_set_gAMA@PNG16_0 1.6.46 + png_set_gAMA_fixed@PNG16_0 1.6.46 + png_get_hIST@PNG16_0 1.6.46 + png_set_hIST@PNG16_0 1.6.46 + png_get_IHDR@PNG16_0 1.6.46 + png_set_IHDR@PNG16_0 1.6.46 + png_get_mDCV@PNG16_0 1.6.46 + png_get_mDCV_fixed@PNG16_0 1.6.46 + png_set_mDCV@PNG16_0 1.6.46 + png_set_mDCV_fixed@PNG16_0 1.6.46 + png_get_oFFs@PNG16_0 1.6.46 + png_set_oFFs@PNG16_0 1.6.46 + png_get_pCAL@PNG16_0 1.6.46 + png_set_pCAL@PNG16_0 1.6.46 + png_get_pHYs@PNG16_0 1.6.46 + png_set_pHYs@PNG16_0 1.6.46 + png_get_PLTE@PNG16_0 1.6.46 + png_set_PLTE@PNG16_0 1.6.46 + png_get_sBIT@PNG16_0 1.6.46 + png_set_sBIT@PNG16_0 1.6.46 + png_get_sRGB@PNG16_0 1.6.46 + png_set_sRGB@PNG16_0 1.6.46 + png_set_sRGB_gAMA_and_cHRM@PNG16_0 1.6.46 + png_get_iCCP@PNG16_0 1.6.46 + png_set_iCCP@PNG16_0 1.6.46 + png_get_sPLT@PNG16_0 1.6.46 + png_set_sPLT@PNG16_0 1.6.46 + png_get_text@PNG16_0 1.6.46 + png_set_text@PNG16_0 1.6.46 + png_get_tIME@PNG16_0 1.6.46 + png_set_tIME@PNG16_0 1.6.46 + png_get_tRNS@PNG16_0 1.6.46 + png_set_tRNS@PNG16_0 1.6.46 + png_get_sCAL@PNG16_0 1.6.46 + png_get_sCAL_fixed@PNG16_0 1.6.46 + png_get_sCAL_s@PNG16_0 1.6.46 + png_set_sCAL@PNG16_0 1.6.46 + png_set_sCAL_fixed@PNG16_0 1.6.46 + png_set_sCAL_s@PNG16_0 1.6.46 + png_set_keep_unknown_chunks@PNG16_0 1.6.46 + png_handle_as_unknown@PNG16_0 1.6.46 + png_set_unknown_chunks@PNG16_0 1.6.46 + png_set_unknown_chunk_location@PNG16_0 1.6.46 + png_get_unknown_chunks@PNG16_0 1.6.46 + png_set_invalid@PNG16_0 1.6.46 + png_read_png@PNG16_0 1.6.46 + png_write_png@PNG16_0 1.6.46 + png_get_copyright@PNG16_0 1.6.46 + png_get_header_ver@PNG16_0 1.6.46 + png_get_header_version@PNG16_0 1.6.46 + png_get_libpng_ver@PNG16_0 1.6.46 + png_permit_mng_features@PNG16_0 1.6.46 + png_set_user_limits@PNG16_0 1.6.46 + png_get_user_width_max@PNG16_0 1.6.46 + png_get_user_height_max@PNG16_0 1.6.46 + png_set_chunk_cache_max@PNG16_0 1.6.46 + png_get_chunk_cache_max@PNG16_0 1.6.46 + png_set_chunk_malloc_max@PNG16_0 1.6.46 + png_get_chunk_malloc_max@PNG16_0 1.6.46 + png_get_pixels_per_inch@PNG16_0 1.6.46 + png_get_x_pixels_per_inch@PNG16_0 1.6.46 + png_get_y_pixels_per_inch@PNG16_0 1.6.46 + png_get_x_offset_inches@PNG16_0 1.6.46 + png_get_x_offset_inches_fixed@PNG16_0 1.6.46 + png_get_y_offset_inches@PNG16_0 1.6.46 + png_get_y_offset_inches_fixed@PNG16_0 1.6.46 + png_get_pHYs_dpi@PNG16_0 1.6.46 + png_get_io_state@PNG16_0 1.6.46 + png_get_io_chunk_type@PNG16_0 1.6.46 + png_get_uint_32@PNG16_0 1.6.46 + png_get_uint_16@PNG16_0 1.6.46 + png_get_int_32@PNG16_0 1.6.46 + png_get_uint_31@PNG16_0 1.6.46 + png_save_uint_32@PNG16_0 1.6.46 + png_save_int_32@PNG16_0 1.6.46 + png_save_uint_16@PNG16_0 1.6.46 + png_set_check_for_invalid_index@PNG16_0 1.6.46 + png_get_palette_max@PNG16_0 1.6.46 + png_image_begin_read_from_file@PNG16_0 1.6.46 + png_image_begin_read_from_stdio@PNG16_0 1.6.46 + png_image_begin_read_from_memory@PNG16_0 1.6.46 + png_image_finish_read@PNG16_0 1.6.46 + png_image_free@PNG16_0 1.6.46 + png_image_write_to_file@PNG16_0 1.6.46 + png_image_write_to_stdio@PNG16_0 1.6.46 + png_image_write_to_memory@PNG16_0 1.6.46 + png_set_option@PNG16_0 1.6.46 diff --git a/libpng16-config.1 b/libpng16-config.1 new file mode 100644 index 0000000..c988a60 --- /dev/null +++ b/libpng16-config.1 @@ -0,0 +1,58 @@ +.TH libpng16-config 1 "15 Apr 2011" "libpng" "Debian GNU/Linux" +.SH NAME +libpng16-config \- get information about installed libpng library +.SH SYNOPSIS +.B libpng16-config +[\fIOPTION\fR] ... +.SH DESCRIPTION +Provides information about libpng library. + +Known values for OPTION are: +.TP +\fB\-\-prefix\fR +print libpng prefix +.TP +\fB\-\-libdir\fR +print path to directory containing library +.TP +\fB\-\-libs\fR +print library linking information +.TP +\fB\-\-ccopts\fR +print compiler options +.TP +\fB\-\-cppflags\fR +print pre-processor flags +.TP +\fB\-\-cflags\fR +print preprocessor flags, I_opts, and compiler options +.TP +\fB\-\-I_opts\fR +print "-I" include options +.TP +\fB\-\-L_opts\fR +print linker "-L" flags for dynamic linking +.TP +\fB\-\-R_opts\fR +print dynamic linker "-R" or "-rpath" flags +.TP +\fB\-\-ldopts\fR +print linker options +.TP +\fB\-\-ldflags\fR +print linker flags (ldopts, L_opts, R_opts, and libs) +.TP +\fB\-\-static\fR +revise subsequent outputs for static linking +.TP +\fB\-\-help\fR +print this help and exit +.TP +\fB\-\-version\fR +print version information +.SH "AUTHOR" +This manpage has been written by Junichi Uekawa +for Debian GNU/Linux system, with the help of help2man, and +may be used by others. + + diff --git a/libpng16-dev.manpages b/libpng16-dev.manpages new file mode 100644 index 0000000..b6ed626 --- /dev/null +++ b/libpng16-dev.manpages @@ -0,0 +1,2 @@ +libpng.3 +png.5 diff --git a/libpng16-tools.install b/libpng16-tools.install new file mode 100644 index 0000000..4b26ab3 --- /dev/null +++ b/libpng16-tools.install @@ -0,0 +1,2 @@ +usr/bin/png-fix-itxt +usr/bin/pngfix diff --git a/not-installed b/not-installed new file mode 100644 index 0000000..9ab426b --- /dev/null +++ b/not-installed @@ -0,0 +1 @@ +usr/lib/*/libpng*.la diff --git a/patches/libpng-1.6.39-apng.patch b/patches/libpng-1.6.39-apng.patch new file mode 100644 index 0000000..0b9c56d --- /dev/null +++ b/patches/libpng-1.6.39-apng.patch @@ -0,0 +1,1728 @@ +diff -Naru libpng-1.6.39.org/png.h libpng-1.6.39/png.h +--- libpng-1.6.39.org/png.h 2022-11-24 08:37:51.507052183 +0900 ++++ libpng-1.6.39/png.h 2022-11-24 08:41:17.785489740 +0900 +@@ -330,6 +330,10 @@ + # include "pnglibconf.h" + #endif + ++#define PNG_APNG_SUPPORTED ++#define PNG_READ_APNG_SUPPORTED ++#define PNG_WRITE_APNG_SUPPORTED ++ + #ifndef PNG_VERSION_INFO_ONLY + /* Machine specific configuration. */ + # include "pngconf.h" +@@ -425,6 +429,17 @@ + * See pngconf.h for base types that vary by machine/system + */ + ++#ifdef PNG_APNG_SUPPORTED ++/* dispose_op flags from inside fcTL */ ++#define PNG_DISPOSE_OP_NONE 0x00U ++#define PNG_DISPOSE_OP_BACKGROUND 0x01U ++#define PNG_DISPOSE_OP_PREVIOUS 0x02U ++ ++/* blend_op flags from inside fcTL */ ++#define PNG_BLEND_OP_SOURCE 0x00U ++#define PNG_BLEND_OP_OVER 0x01U ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +@@ -746,6 +761,10 @@ + #define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */ + #define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */ + #define PNG_INFO_eXIf 0x10000U /* GR-P, 1.6.31 */ ++#ifdef PNG_APNG_SUPPORTED ++#define PNG_INFO_acTL 0x20000U ++#define PNG_INFO_fcTL 0x40000U ++#endif + + /* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using +@@ -783,6 +802,10 @@ + #ifdef PNG_PROGRESSIVE_READ_SUPPORTED + typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); + typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); ++#ifdef PNG_APNG_SUPPORTED ++typedef PNG_CALLBACK(void, *png_progressive_frame_ptr, (png_structp, ++ png_uint_32)); ++#endif + + /* The following callback receives png_uint_32 row_number, int pass for the + * png_bytep data of the row. When transforming an interlaced image the +@@ -3226,6 +3249,74 @@ + /******************************************************************************* + * END OF HARDWARE AND SOFTWARE OPTIONS + ******************************************************************************/ ++#ifdef PNG_APNG_SUPPORTED ++PNG_EXPORT(250, png_uint_32, png_get_acTL, (png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 *num_frames, png_uint_32 *num_plays)); ++ ++PNG_EXPORT(251, png_uint_32, png_set_acTL, (png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 num_frames, png_uint_32 num_plays)); ++ ++PNG_EXPORT(252, png_uint_32, png_get_num_frames, (png_structp png_ptr, ++ png_infop info_ptr)); ++ ++PNG_EXPORT(253, png_uint_32, png_get_num_plays, (png_structp png_ptr, ++ png_infop info_ptr)); ++ ++PNG_EXPORT(254, png_uint_32, png_get_next_frame_fcTL, ++ (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, ++ png_uint_32 *height, png_uint_32 *x_offset, png_uint_32 *y_offset, ++ png_uint_16 *delay_num, png_uint_16 *delay_den, png_byte *dispose_op, ++ png_byte *blend_op)); ++ ++PNG_EXPORT(255, png_uint_32, png_set_next_frame_fcTL, ++ (png_structp png_ptr, png_infop info_ptr, png_uint_32 width, ++ png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op)); ++ ++PNG_EXPORT(256, png_uint_32, png_get_next_frame_width, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(257, png_uint_32, png_get_next_frame_height, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(258, png_uint_32, png_get_next_frame_x_offset, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(259, png_uint_32, png_get_next_frame_y_offset, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(260, png_uint_16, png_get_next_frame_delay_num, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(261, png_uint_16, png_get_next_frame_delay_den, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(262, png_byte, png_get_next_frame_dispose_op, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(263, png_byte, png_get_next_frame_blend_op, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(264, png_byte, png_get_first_frame_is_hidden, ++ (png_structp png_ptr, png_infop info_ptr)); ++PNG_EXPORT(265, png_uint_32, png_set_first_frame_is_hidden, ++ (png_structp png_ptr, png_infop info_ptr, png_byte is_hidden)); ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++PNG_EXPORT(266, void, png_read_frame_head, (png_structp png_ptr, ++ png_infop info_ptr)); ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++PNG_EXPORT(267, void, png_set_progressive_frame_fn, (png_structp png_ptr, ++ png_progressive_frame_ptr frame_info_fn, ++ png_progressive_frame_ptr frame_end_fn)); ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++PNG_EXPORT(268, void, png_write_frame_head, (png_structp png_ptr, ++ png_infop info_ptr, png_bytepp row_pointers, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op)); ++ ++PNG_EXPORT(269, void, png_write_frame_tail, (png_structp png_ptr, ++ png_infop info_ptr)); ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++#endif /* PNG_APNG_SUPPORTED */ + + /* Maintainer: Put new public prototypes here ^, in libpng.3, in project + * defs, and in scripts/symbols.def. +@@ -3235,7 +3326,11 @@ + * one to use is one more than this.) + */ + #ifdef PNG_EXPORT_LAST_ORDINAL ++#ifdef PNG_APNG_SUPPORTED ++ PNG_EXPORT_LAST_ORDINAL(269); ++#else + PNG_EXPORT_LAST_ORDINAL(249); ++#endif /* PNG_APNG_SUPPORTED */ + #endif + + #ifdef __cplusplus +diff -Naru libpng-1.6.39.org/pngget.c libpng-1.6.39/pngget.c +--- libpng-1.6.39.org/pngget.c 2022-11-24 08:37:51.507052183 +0900 ++++ libpng-1.6.39/pngget.c 2022-11-24 08:41:17.785489740 +0900 +@@ -1246,4 +1246,166 @@ + # endif + #endif + ++#ifdef PNG_APNG_SUPPORTED ++png_uint_32 PNGAPI ++png_get_acTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 *num_frames, png_uint_32 *num_plays) ++{ ++ png_debug1(1, "in %s retrieval function", "acTL"); ++ ++ if (png_ptr != NULL && info_ptr != NULL && ++ (info_ptr->valid & PNG_INFO_acTL) && ++ num_frames != NULL && num_plays != NULL) ++ { ++ *num_frames = info_ptr->num_frames; ++ *num_plays = info_ptr->num_plays; ++ return (1); ++ } ++ ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_num_frames(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_num_frames()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->num_frames); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_num_plays(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_num_plays()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->num_plays); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 *width, png_uint_32 *height, ++ png_uint_32 *x_offset, png_uint_32 *y_offset, ++ png_uint_16 *delay_num, png_uint_16 *delay_den, ++ png_byte *dispose_op, png_byte *blend_op) ++{ ++ png_debug1(1, "in %s retrieval function", "fcTL"); ++ ++ if (png_ptr != NULL && info_ptr != NULL && ++ (info_ptr->valid & PNG_INFO_fcTL) && ++ width != NULL && height != NULL && ++ x_offset != NULL && y_offset != NULL && ++ delay_num != NULL && delay_den != NULL && ++ dispose_op != NULL && blend_op != NULL) ++ { ++ *width = info_ptr->next_frame_width; ++ *height = info_ptr->next_frame_height; ++ *x_offset = info_ptr->next_frame_x_offset; ++ *y_offset = info_ptr->next_frame_y_offset; ++ *delay_num = info_ptr->next_frame_delay_num; ++ *delay_den = info_ptr->next_frame_delay_den; ++ *dispose_op = info_ptr->next_frame_dispose_op; ++ *blend_op = info_ptr->next_frame_blend_op; ++ return (1); ++ } ++ ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_width(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_width()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_width); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_height(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_height()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_height); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_x_offset(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_x_offset()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_x_offset); ++ return (0); ++} ++ ++png_uint_32 PNGAPI ++png_get_next_frame_y_offset(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_y_offset()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_y_offset); ++ return (0); ++} ++ ++png_uint_16 PNGAPI ++png_get_next_frame_delay_num(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_delay_num()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_delay_num); ++ return (0); ++} ++ ++png_uint_16 PNGAPI ++png_get_next_frame_delay_den(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_delay_den()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_delay_den); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_next_frame_dispose_op(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_dispose_op()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_dispose_op); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_next_frame_blend_op(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_get_next_frame_blend_op()"); ++ ++ if (png_ptr != NULL && info_ptr != NULL) ++ return (info_ptr->next_frame_blend_op); ++ return (0); ++} ++ ++png_byte PNGAPI ++png_get_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_first_frame_is_hidden()"); ++ ++ if (png_ptr != NULL) ++ return (png_byte)(png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN); ++ ++ PNG_UNUSED(info_ptr) ++ ++ return 0; ++} ++#endif /* PNG_APNG_SUPPORTED */ + #endif /* READ || WRITE */ +diff -Naru libpng-1.6.39.org/pnginfo.h libpng-1.6.39/pnginfo.h +--- libpng-1.6.39.org/pnginfo.h 2022-11-24 08:37:51.507052183 +0900 ++++ libpng-1.6.39/pnginfo.h 2022-11-24 08:41:17.785489740 +0900 +@@ -263,5 +263,18 @@ + png_bytepp row_pointers; /* the image bits */ + #endif + ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 num_frames; /* including default image */ ++ png_uint_32 num_plays; ++ png_uint_32 next_frame_width; ++ png_uint_32 next_frame_height; ++ png_uint_32 next_frame_x_offset; ++ png_uint_32 next_frame_y_offset; ++ png_uint_16 next_frame_delay_num; ++ png_uint_16 next_frame_delay_den; ++ png_byte next_frame_dispose_op; ++ png_byte next_frame_blend_op; ++#endif ++ + }; + #endif /* PNGINFO_H */ +diff -Naru libpng-1.6.39.org/pngpread.c libpng-1.6.39/pngpread.c +--- libpng-1.6.39.org/pngpread.c 2022-11-24 08:37:51.507052183 +0900 ++++ libpng-1.6.39/pngpread.c 2022-11-24 08:41:17.785489740 +0900 +@@ -195,6 +195,106 @@ + + chunk_name = png_ptr->chunk_name; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->num_frames_read > 0 && ++ png_ptr->num_frames_read < info_ptr->num_frames) ++ { ++ if (chunk_name == png_IDAT) ++ { ++ /* Discard trailing IDATs for the first frame */ ++ if (png_ptr->mode & PNG_HAVE_fcTL || png_ptr->num_frames_read > 1) ++ png_error(png_ptr, "out of place IDAT"); ++ ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ else if (chunk_name == png_fdAT) ++ { ++ if (png_ptr->buffer_size < 4) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ensure_sequence_number(png_ptr, 4); ++ ++ if (!(png_ptr->mode & PNG_HAVE_fcTL)) ++ { ++ /* Discard trailing fdATs for frames other than the first */ ++ if (png_ptr->num_frames_read < 2) ++ png_error(png_ptr, "out of place fdAT"); ++ ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ ++ else ++ { ++ /* frame data follows */ ++ png_ptr->idat_size = png_ptr->push_length - 4; ++ png_ptr->mode |= PNG_HAVE_IDAT; ++ png_ptr->process_mode = PNG_READ_IDAT_MODE; ++ ++ return; ++ } ++ } ++ ++ else if (chunk_name == png_fcTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_read_reset(png_ptr); ++ png_ptr->mode &= ~PNG_HAVE_fcTL; ++ ++ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length); ++ ++ if (!(png_ptr->mode & PNG_HAVE_fcTL)) ++ png_error(png_ptr, "missing required fcTL chunk"); ++ ++ png_read_reinit(png_ptr, info_ptr); ++ png_progressive_read_reset(png_ptr); ++ ++ if (png_ptr->frame_info_fn != NULL) ++ (*(png_ptr->frame_info_fn))(png_ptr, png_ptr->num_frames_read); ++ ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ ++ return; ++ } ++ ++ else ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ ++ return; ++ } ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + if (chunk_name == png_IDAT) + { + if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) +@@ -261,6 +361,9 @@ + + else if (chunk_name == png_IDAT) + { ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_have_info(png_ptr, info_ptr); ++#endif + png_ptr->idat_size = png_ptr->push_length; + png_ptr->process_mode = PNG_READ_IDAT_MODE; + png_push_have_info(png_ptr, info_ptr); +@@ -406,6 +509,30 @@ + png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); + } + #endif ++#ifdef PNG_READ_APNG_SUPPORTED ++ else if (chunk_name == png_acTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_handle_acTL(png_ptr, info_ptr, png_ptr->push_length); ++ } ++ ++ else if (chunk_name == png_fcTL) ++ { ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ ++ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length); ++ } ++ ++#endif /* PNG_READ_APNG_SUPPORTED */ + + else + { +@@ -539,7 +666,11 @@ + png_byte chunk_tag[4]; + + /* TODO: this code can be commoned up with the same code in push_read */ ++#ifdef PNG_READ_APNG_SUPPORTED ++ PNG_PUSH_SAVE_BUFFER_IF_LT(12) ++#else + PNG_PUSH_SAVE_BUFFER_IF_LT(8) ++#endif + png_push_fill_buffer(png_ptr, chunk_length, 4); + png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length); + png_reset_crc(png_ptr); +@@ -547,17 +678,64 @@ + png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag); + png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->chunk_name != png_fdAT && png_ptr->num_frames_read > 0) ++ { ++ if (png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) ++ { ++ png_ptr->process_mode = PNG_READ_CHUNK_MODE; ++ if (png_ptr->frame_end_fn != NULL) ++ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read); ++ png_ptr->num_frames_read++; ++ return; ++ } ++ else ++ { ++ if (png_ptr->chunk_name == png_IEND) ++ png_error(png_ptr, "Not enough image data"); ++ if (png_ptr->push_length + 4 > png_ptr->buffer_size) ++ { ++ png_push_save_buffer(png_ptr); ++ return; ++ } ++ png_warning(png_ptr, "Skipping (ignoring) a chunk between " ++ "APNG chunks"); ++ png_crc_finish(png_ptr, png_ptr->push_length); ++ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; ++ return; ++ } ++ } ++ else ++#endif ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->chunk_name != png_IDAT && png_ptr->num_frames_read == 0) ++#else + if (png_ptr->chunk_name != png_IDAT) ++#endif + { + png_ptr->process_mode = PNG_READ_CHUNK_MODE; + + if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0) + png_error(png_ptr, "Not enough compressed data"); + ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->frame_end_fn != NULL) ++ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read); ++ png_ptr->num_frames_read++; ++#endif ++ + return; + } + + png_ptr->idat_size = png_ptr->push_length; ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++ if (png_ptr->num_frames_read > 0) ++ { ++ png_ensure_sequence_number(png_ptr, 4); ++ png_ptr->idat_size -= 4; ++ } ++#endif + } + + if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0) +@@ -631,6 +809,15 @@ + if (!(buffer_length > 0) || buffer == NULL) + png_error(png_ptr, "No IDAT data (internal error)"); + ++#ifdef PNG_READ_APNG_SUPPORTED ++ /* If the app is not APNG-aware, decode only the first frame */ ++ if (!(png_ptr->apng_flags & PNG_APNG_APP) && png_ptr->num_frames_read > 0) ++ { ++ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; ++ return; ++ } ++#endif ++ + /* This routine must process all the data it has been given + * before returning, calling the row callback as required to + * handle the uncompressed results. +@@ -1085,6 +1272,18 @@ + png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); + } + ++#ifdef PNG_READ_APNG_SUPPORTED ++void PNGAPI ++png_set_progressive_frame_fn(png_structp png_ptr, ++ png_progressive_frame_ptr frame_info_fn, ++ png_progressive_frame_ptr frame_end_fn) ++{ ++ png_ptr->frame_info_fn = frame_info_fn; ++ png_ptr->frame_end_fn = frame_end_fn; ++ png_ptr->apng_flags |= PNG_APNG_APP; ++} ++#endif ++ + png_voidp PNGAPI + png_get_progressive_ptr(png_const_structrp png_ptr) + { +diff -Naru libpng-1.6.39.org/pngpriv.h libpng-1.6.39/pngpriv.h +--- libpng-1.6.39.org/pngpriv.h 2022-11-24 08:37:51.508052181 +0900 ++++ libpng-1.6.39/pngpriv.h 2022-11-24 08:41:17.785489740 +0900 +@@ -628,6 +628,10 @@ + #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000U /* Have another chunk after IDAT */ + /* 0x4000U (unused) */ + #define PNG_IS_READ_STRUCT 0x8000U /* Else is a write struct */ ++#ifdef PNG_APNG_SUPPORTED ++#define PNG_HAVE_acTL 0x10000U ++#define PNG_HAVE_fcTL 0x20000U ++#endif + + /* Flags for the transformations the PNG library does on the image data */ + #define PNG_BGR 0x0001U +@@ -864,6 +868,16 @@ + #define png_tRNS PNG_U32(116, 82, 78, 83) + #define png_zTXt PNG_U32(122, 84, 88, 116) + ++#ifdef PNG_APNG_SUPPORTED ++#define png_acTL PNG_U32( 97, 99, 84, 76) ++#define png_fcTL PNG_U32(102, 99, 84, 76) ++#define png_fdAT PNG_U32(102, 100, 65, 84) ++ ++/* For png_struct.apng_flags: */ ++#define PNG_FIRST_FRAME_HIDDEN 0x0001U ++#define PNG_APNG_APP 0x0002U ++#endif ++ + /* The following will work on (signed char*) strings, whereas the get_uint_32 + * macro will fail on top-bit-set values because of the sign extension. + */ +@@ -1635,6 +1649,47 @@ + */ + #endif + ++#ifdef PNG_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_ensure_fcTL_is_valid,(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op), PNG_EMPTY); ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_handle_acTL,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_handle_fcTL,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_handle_fdAT,(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_have_info,(png_structp png_ptr, png_infop info_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_ensure_sequence_number,(png_structp png_ptr, ++ png_uint_32 length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_read_reset,(png_structp png_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_read_reinit,(png_structp png_ptr, ++ png_infop info_ptr),PNG_EMPTY); ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_progressive_read_reset,(png_structp png_ptr),PNG_EMPTY); ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++PNG_INTERNAL_FUNCTION(void,png_write_acTL,(png_structp png_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_fcTL,(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_fdAT,(png_structp png_ptr, ++ png_const_bytep data, png_size_t length),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_reset,(png_structp png_ptr),PNG_EMPTY); ++PNG_INTERNAL_FUNCTION(void,png_write_reinit,(png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 width, png_uint_32 height),PNG_EMPTY); ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* Added at libpng version 1.4.0 */ + #ifdef PNG_COLORSPACE_SUPPORTED + /* These internal functions are for maintaining the colorspace structure within +diff -Naru libpng-1.6.39.org/pngread.c libpng-1.6.39/pngread.c +--- libpng-1.6.39.org/pngread.c 2022-11-24 08:37:51.508052181 +0900 ++++ libpng-1.6.39/pngread.c 2022-11-24 08:41:17.786489737 +0900 +@@ -161,6 +161,9 @@ + + else if (chunk_name == png_IDAT) + { ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_have_info(png_ptr, info_ptr); ++#endif + png_ptr->idat_size = length; + break; + } +@@ -255,6 +258,17 @@ + png_handle_iTXt(png_ptr, info_ptr, length); + #endif + ++#ifdef PNG_READ_APNG_SUPPORTED ++ else if (chunk_name == png_acTL) ++ png_handle_acTL(png_ptr, info_ptr, length); ++ ++ else if (chunk_name == png_fcTL) ++ png_handle_fcTL(png_ptr, info_ptr, length); ++ ++ else if (chunk_name == png_fdAT) ++ png_handle_fdAT(png_ptr, info_ptr, length); ++#endif ++ + else + png_handle_unknown(png_ptr, info_ptr, length, + PNG_HANDLE_CHUNK_AS_DEFAULT); +@@ -262,6 +276,72 @@ + } + #endif /* SEQUENTIAL_READ */ + ++#ifdef PNG_READ_APNG_SUPPORTED ++void PNGAPI ++png_read_frame_head(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_byte have_chunk_after_DAT; /* after IDAT or after fdAT */ ++ ++ png_debug(0, "Reading frame head"); ++ ++ if (!(png_ptr->mode & PNG_HAVE_acTL)) ++ png_error(png_ptr, "attempt to png_read_frame_head() but " ++ "no acTL present"); ++ ++ /* do nothing for the main IDAT */ ++ if (png_ptr->num_frames_read == 0) ++ return; ++ ++ png_read_reset(png_ptr); ++ png_ptr->flags &= ~PNG_FLAG_ROW_INIT; ++ png_ptr->mode &= ~PNG_HAVE_fcTL; ++ ++ have_chunk_after_DAT = 0; ++ for (;;) ++ { ++ png_uint_32 length = png_read_chunk_header(png_ptr); ++ ++ if (png_ptr->chunk_name == png_IDAT) ++ { ++ /* discard trailing IDATs for the first frame */ ++ if (have_chunk_after_DAT || png_ptr->num_frames_read > 1) ++ png_error(png_ptr, "png_read_frame_head(): out of place IDAT"); ++ png_crc_finish(png_ptr, length); ++ } ++ ++ else if (png_ptr->chunk_name == png_fcTL) ++ { ++ png_handle_fcTL(png_ptr, info_ptr, length); ++ have_chunk_after_DAT = 1; ++ } ++ ++ else if (png_ptr->chunk_name == png_fdAT) ++ { ++ png_ensure_sequence_number(png_ptr, length); ++ ++ /* discard trailing fdATs for frames other than the first */ ++ if (!have_chunk_after_DAT && png_ptr->num_frames_read > 1) ++ png_crc_finish(png_ptr, length - 4); ++ else if(png_ptr->mode & PNG_HAVE_fcTL) ++ { ++ png_ptr->idat_size = length - 4; ++ png_ptr->mode |= PNG_HAVE_IDAT; ++ ++ break; ++ } ++ else ++ png_error(png_ptr, "png_read_frame_head(): out of place fdAT"); ++ } ++ else ++ { ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ png_crc_finish(png_ptr, length); ++ } ++ } ++} ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + /* Optional call to update the users info_ptr structure */ + void PNGAPI + png_read_update_info(png_structrp png_ptr, png_inforp info_ptr) +diff -Naru libpng-1.6.39.org/pngrutil.c libpng-1.6.39/pngrutil.c +--- libpng-1.6.39.org/pngrutil.c 2022-11-24 08:37:51.510052177 +0900 ++++ libpng-1.6.39/pngrutil.c 2022-11-24 08:41:17.787489734 +0900 +@@ -864,6 +864,11 @@ + filter_type = buf[11]; + interlace_type = buf[12]; + ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_ptr->first_frame_width = width; ++ png_ptr->first_frame_height = height; ++#endif ++ + /* Set internal variables */ + png_ptr->width = width; + png_ptr->height = height; +@@ -2858,6 +2863,179 @@ + } + #endif + ++#ifdef PNG_READ_APNG_SUPPORTED ++void /* PRIVATE */ ++png_handle_acTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_byte data[8]; ++ png_uint_32 num_frames; ++ png_uint_32 num_plays; ++ png_uint_32 didSet; ++ ++ png_debug(1, "in png_handle_acTL"); ++ ++ if (!(png_ptr->mode & PNG_HAVE_IHDR)) ++ { ++ png_error(png_ptr, "Missing IHDR before acTL"); ++ } ++ else if (png_ptr->mode & PNG_HAVE_IDAT) ++ { ++ png_warning(png_ptr, "Invalid acTL after IDAT skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ else if (png_ptr->mode & PNG_HAVE_acTL) ++ { ++ png_warning(png_ptr, "Duplicate acTL skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ else if (length != 8) ++ { ++ png_warning(png_ptr, "acTL with invalid length skipped"); ++ png_crc_finish(png_ptr, length); ++ return; ++ } ++ ++ png_crc_read(png_ptr, data, 8); ++ png_crc_finish(png_ptr, 0); ++ ++ num_frames = png_get_uint_31(png_ptr, data); ++ num_plays = png_get_uint_31(png_ptr, data + 4); ++ ++ /* the set function will do error checking on num_frames */ ++ didSet = png_set_acTL(png_ptr, info_ptr, num_frames, num_plays); ++ if(didSet) ++ png_ptr->mode |= PNG_HAVE_acTL; ++} ++ ++void /* PRIVATE */ ++png_handle_fcTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_byte data[22]; ++ png_uint_32 width; ++ png_uint_32 height; ++ png_uint_32 x_offset; ++ png_uint_32 y_offset; ++ png_uint_16 delay_num; ++ png_uint_16 delay_den; ++ png_byte dispose_op; ++ png_byte blend_op; ++ ++ png_debug(1, "in png_handle_fcTL"); ++ ++ png_ensure_sequence_number(png_ptr, length); ++ ++ if (!(png_ptr->mode & PNG_HAVE_IHDR)) ++ { ++ png_error(png_ptr, "Missing IHDR before fcTL"); ++ } ++ else if (png_ptr->mode & PNG_HAVE_IDAT) ++ { ++ /* for any frames other then the first this message may be misleading, ++ * but correct. PNG_HAVE_IDAT is unset before the frame head is read ++ * i can't think of a better message */ ++ png_warning(png_ptr, "Invalid fcTL after IDAT skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ else if (png_ptr->mode & PNG_HAVE_fcTL) ++ { ++ png_warning(png_ptr, "Duplicate fcTL within one frame skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ else if (length != 26) ++ { ++ png_warning(png_ptr, "fcTL with invalid length skipped"); ++ png_crc_finish(png_ptr, length-4); ++ return; ++ } ++ ++ png_crc_read(png_ptr, data, 22); ++ png_crc_finish(png_ptr, 0); ++ ++ width = png_get_uint_31(png_ptr, data); ++ height = png_get_uint_31(png_ptr, data + 4); ++ x_offset = png_get_uint_31(png_ptr, data + 8); ++ y_offset = png_get_uint_31(png_ptr, data + 12); ++ delay_num = png_get_uint_16(data + 16); ++ delay_den = png_get_uint_16(data + 18); ++ dispose_op = data[20]; ++ blend_op = data[21]; ++ ++ if (png_ptr->num_frames_read == 0 && (x_offset != 0 || y_offset != 0)) ++ { ++ png_warning(png_ptr, "fcTL for the first frame must have zero offset"); ++ return; ++ } ++ ++ if (info_ptr != NULL) ++ { ++ if (png_ptr->num_frames_read == 0 && ++ (width != info_ptr->width || height != info_ptr->height)) ++ { ++ png_warning(png_ptr, "size in first frame's fcTL must match " ++ "the size in IHDR"); ++ return; ++ } ++ ++ /* The set function will do more error checking */ ++ png_set_next_frame_fcTL(png_ptr, info_ptr, width, height, ++ x_offset, y_offset, delay_num, delay_den, ++ dispose_op, blend_op); ++ ++ png_read_reinit(png_ptr, info_ptr); ++ ++ png_ptr->mode |= PNG_HAVE_fcTL; ++ } ++} ++ ++void /* PRIVATE */ ++png_have_info(png_structp png_ptr, png_infop info_ptr) ++{ ++ if((info_ptr->valid & PNG_INFO_acTL) && !(info_ptr->valid & PNG_INFO_fcTL)) ++ { ++ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN; ++ info_ptr->num_frames++; ++ } ++} ++ ++void /* PRIVATE */ ++png_handle_fdAT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) ++{ ++ png_ensure_sequence_number(png_ptr, length); ++ ++ /* This function is only called from png_read_end(), png_read_info(), ++ * and png_push_read_chunk() which means that: ++ * - the user doesn't want to read this frame ++ * - or this is an out-of-place fdAT ++ * in either case it is safe to ignore the chunk with a warning */ ++ png_warning(png_ptr, "ignoring fdAT chunk"); ++ png_crc_finish(png_ptr, length - 4); ++ PNG_UNUSED(info_ptr) ++} ++ ++void /* PRIVATE */ ++png_ensure_sequence_number(png_structp png_ptr, png_uint_32 length) ++{ ++ png_byte data[4]; ++ png_uint_32 sequence_number; ++ ++ if (length < 4) ++ png_error(png_ptr, "invalid fcTL or fdAT chunk found"); ++ ++ png_crc_read(png_ptr, data, 4); ++ sequence_number = png_get_uint_31(png_ptr, data); ++ ++ if (sequence_number != png_ptr->next_seq_num) ++ png_error(png_ptr, "fcTL or fdAT chunk with out-of-order sequence " ++ "number found"); ++ ++ png_ptr->next_seq_num++; ++} ++#endif /* PNG_READ_APNG_SUPPORTED */ ++ + #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED + /* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */ + static int +@@ -4166,7 +4344,38 @@ + { + uInt avail_in; + png_bytep buffer; ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_uint_32 bytes_to_skip = 0; ++ ++ while (png_ptr->idat_size == 0 || bytes_to_skip != 0) ++ { ++ png_crc_finish(png_ptr, bytes_to_skip); ++ bytes_to_skip = 0; + ++ png_ptr->idat_size = png_read_chunk_header(png_ptr); ++ if (png_ptr->num_frames_read == 0) ++ { ++ if (png_ptr->chunk_name != png_IDAT) ++ png_error(png_ptr, "Not enough image data"); ++ } ++ else ++ { ++ if (png_ptr->chunk_name == png_IEND) ++ png_error(png_ptr, "Not enough image data"); ++ if (png_ptr->chunk_name != png_fdAT) ++ { ++ png_warning(png_ptr, "Skipped (ignored) a chunk " ++ "between APNG chunks"); ++ bytes_to_skip = png_ptr->idat_size; ++ continue; ++ } ++ ++ png_ensure_sequence_number(png_ptr, png_ptr->idat_size); ++ ++ png_ptr->idat_size -= 4; ++ } ++ } ++#else + while (png_ptr->idat_size == 0) + { + png_crc_finish(png_ptr, 0); +@@ -4178,7 +4387,7 @@ + if (png_ptr->chunk_name != png_IDAT) + png_error(png_ptr, "Not enough image data"); + } +- ++#endif /* PNG_READ_APNG_SUPPORTED */ + avail_in = png_ptr->IDAT_read_size; + + if (avail_in > png_ptr->idat_size) +@@ -4241,6 +4450,9 @@ + + png_ptr->mode |= PNG_AFTER_IDAT; + png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_ptr->num_frames_read++; ++#endif + + if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0) + png_chunk_benign_error(png_ptr, "Extra compressed data"); +@@ -4678,4 +4890,80 @@ + + png_ptr->flags |= PNG_FLAG_ROW_INIT; + } ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++/* This function is to be called after the main IDAT set has been read and ++ * before a new IDAT is read. It resets some parts of png_ptr ++ * to make them usable by the read functions again */ ++void /* PRIVATE */ ++png_read_reset(png_structp png_ptr) ++{ ++ png_ptr->mode &= ~PNG_HAVE_IDAT; ++ png_ptr->mode &= ~PNG_AFTER_IDAT; ++ png_ptr->row_number = 0; ++ png_ptr->pass = 0; ++} ++ ++void /* PRIVATE */ ++png_read_reinit(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_ptr->width = info_ptr->next_frame_width; ++ png_ptr->height = info_ptr->next_frame_height; ++ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->width); ++ png_ptr->info_rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, ++ png_ptr->width); ++ if (png_ptr->prev_row) ++ memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); ++} ++ ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++/* same as png_read_reset() but for the progressive reader */ ++void /* PRIVATE */ ++png_progressive_read_reset(png_structp png_ptr) ++{ ++#ifdef PNG_READ_INTERLACING_SUPPORTED ++ /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ ++ ++ /* Start of interlace block */ ++ const int png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; ++ ++ /* Offset to next interlace block */ ++ const int png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; ++ ++ /* Start of interlace block in the y direction */ ++ const int png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; ++ ++ /* Offset to next interlace block in the y direction */ ++ const int png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; ++ ++ if (png_ptr->interlaced) ++ { ++ if (!(png_ptr->transformations & PNG_INTERLACE)) ++ png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - ++ png_pass_ystart[0]) / png_pass_yinc[0]; ++ else ++ png_ptr->num_rows = png_ptr->height; ++ ++ png_ptr->iwidth = (png_ptr->width + ++ png_pass_inc[png_ptr->pass] - 1 - ++ png_pass_start[png_ptr->pass]) / ++ png_pass_inc[png_ptr->pass]; ++ } ++ else ++#endif /* PNG_READ_INTERLACING_SUPPORTED */ ++ { ++ png_ptr->num_rows = png_ptr->height; ++ png_ptr->iwidth = png_ptr->width; ++ } ++ png_ptr->flags &= ~PNG_FLAG_ZSTREAM_ENDED; ++ if (inflateReset(&(png_ptr->zstream)) != Z_OK) ++ png_error(png_ptr, "inflateReset failed"); ++ png_ptr->zstream.avail_in = 0; ++ png_ptr->zstream.next_in = 0; ++ png_ptr->zstream.next_out = png_ptr->row_buf; ++ png_ptr->zstream.avail_out = (uInt)PNG_ROWBYTES(png_ptr->pixel_depth, ++ png_ptr->iwidth) + 1; ++} ++#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ ++#endif /* PNG_READ_APNG_SUPPORTED */ + #endif /* READ */ +diff -Naru libpng-1.6.39.org/pngset.c libpng-1.6.39/pngset.c +--- libpng-1.6.39.org/pngset.c 2022-11-24 08:37:51.510052177 +0900 ++++ libpng-1.6.39/pngset.c 2022-11-24 08:41:17.787489734 +0900 +@@ -288,6 +288,11 @@ + info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth); + + info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width); ++ ++#ifdef PNG_APNG_SUPPORTED ++ /* for non-animated png. this may be overwritten from an acTL chunk later */ ++ info_ptr->num_frames = 1; ++#endif + } + + #ifdef PNG_oFFs_SUPPORTED +@@ -1161,6 +1166,147 @@ + } + #endif /* sPLT */ + ++#ifdef PNG_APNG_SUPPORTED ++png_uint_32 PNGAPI ++png_set_acTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays) ++{ ++ png_debug1(1, "in %s storage function", "acTL"); ++ ++ if (png_ptr == NULL || info_ptr == NULL) ++ { ++ png_warning(png_ptr, ++ "Call to png_set_acTL() with NULL png_ptr " ++ "or info_ptr ignored"); ++ return (0); ++ } ++ if (num_frames == 0) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_frames zero"); ++ return (0); ++ } ++ if (num_frames > PNG_UINT_31_MAX) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_frames > 2^31-1"); ++ return (0); ++ } ++ if (num_plays > PNG_UINT_31_MAX) ++ { ++ png_warning(png_ptr, ++ "Ignoring attempt to set acTL with num_plays " ++ "> 2^31-1"); ++ return (0); ++ } ++ ++ info_ptr->num_frames = num_frames; ++ info_ptr->num_plays = num_plays; ++ ++ info_ptr->valid |= PNG_INFO_acTL; ++ ++ return (1); ++} ++ ++/* delay_num and delay_den can hold any 16-bit values including zero */ ++png_uint_32 PNGAPI ++png_set_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op) ++{ ++ png_debug1(1, "in %s storage function", "fcTL"); ++ ++ if (png_ptr == NULL || info_ptr == NULL) ++ { ++ png_warning(png_ptr, ++ "Call to png_set_fcTL() with NULL png_ptr or info_ptr " ++ "ignored"); ++ return (0); ++ } ++ ++ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ if (blend_op == PNG_BLEND_OP_OVER) ++ { ++ if (!(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) && ++ !(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) ++ { ++ png_warning(png_ptr, "PNG_BLEND_OP_OVER is meaningless " ++ "and wasteful for opaque images, ignored"); ++ blend_op = PNG_BLEND_OP_SOURCE; ++ } ++ } ++ ++ info_ptr->next_frame_width = width; ++ info_ptr->next_frame_height = height; ++ info_ptr->next_frame_x_offset = x_offset; ++ info_ptr->next_frame_y_offset = y_offset; ++ info_ptr->next_frame_delay_num = delay_num; ++ info_ptr->next_frame_delay_den = delay_den; ++ info_ptr->next_frame_dispose_op = dispose_op; ++ info_ptr->next_frame_blend_op = blend_op; ++ ++ info_ptr->valid |= PNG_INFO_fcTL; ++ ++ return (1); ++} ++ ++void /* PRIVATE */ ++png_ensure_fcTL_is_valid(png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op) ++{ ++ if (width == 0 || width > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid width in fcTL (> 2^31-1)"); ++ if (height == 0 || height > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid height in fcTL (> 2^31-1)"); ++ if (x_offset > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid x_offset in fcTL (> 2^31-1)"); ++ if (y_offset > PNG_UINT_31_MAX) ++ png_error(png_ptr, "invalid y_offset in fcTL (> 2^31-1)"); ++ if (width + x_offset > png_ptr->first_frame_width || ++ height + y_offset > png_ptr->first_frame_height) ++ png_error(png_ptr, "dimensions of a frame are greater than" ++ "the ones in IHDR"); ++ ++ if (dispose_op != PNG_DISPOSE_OP_NONE && ++ dispose_op != PNG_DISPOSE_OP_BACKGROUND && ++ dispose_op != PNG_DISPOSE_OP_PREVIOUS) ++ png_error(png_ptr, "invalid dispose_op in fcTL"); ++ ++ if (blend_op != PNG_BLEND_OP_SOURCE && ++ blend_op != PNG_BLEND_OP_OVER) ++ png_error(png_ptr, "invalid blend_op in fcTL"); ++ ++ PNG_UNUSED(delay_num) ++ PNG_UNUSED(delay_den) ++} ++ ++png_uint_32 PNGAPI ++png_set_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr, ++ png_byte is_hidden) ++{ ++ png_debug(1, "in png_first_frame_is_hidden()"); ++ ++ if (png_ptr == NULL) ++ return 0; ++ ++ if (is_hidden) ++ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN; ++ else ++ png_ptr->apng_flags &= ~PNG_FIRST_FRAME_HIDDEN; ++ ++ PNG_UNUSED(info_ptr) ++ ++ return 1; ++} ++#endif /* PNG_APNG_SUPPORTED */ ++ + #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED + static png_byte + check_location(png_const_structrp png_ptr, int location) +diff -Naru libpng-1.6.39.org/pngstruct.h libpng-1.6.39/pngstruct.h +--- libpng-1.6.39.org/pngstruct.h 2022-11-24 08:37:51.510052177 +0900 ++++ libpng-1.6.39/pngstruct.h 2022-11-24 08:41:17.787489734 +0900 +@@ -399,6 +399,27 @@ + png_byte filter_type; + #endif + ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 apng_flags; ++ png_uint_32 next_seq_num; /* next fcTL/fdAT chunk sequence number */ ++ png_uint_32 first_frame_width; ++ png_uint_32 first_frame_height; ++ ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_uint_32 num_frames_read; /* incremented after all image data of */ ++ /* a frame is read */ ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++ png_progressive_frame_ptr frame_info_fn; /* frame info read callback */ ++ png_progressive_frame_ptr frame_end_fn; /* frame data read callback */ ++#endif ++#endif ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_uint_32 num_frames_to_write; ++ png_uint_32 num_frames_written; ++#endif ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* New members added in libpng-1.2.0 */ + + /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ +diff -Naru libpng-1.6.39.org/pngtest.c libpng-1.6.39/pngtest.c +--- libpng-1.6.39.org/pngtest.c 2022-11-24 08:37:51.510052177 +0900 ++++ libpng-1.6.39/pngtest.c 2022-11-24 08:41:17.787489734 +0900 +@@ -875,6 +875,10 @@ + volatile int num_passes; + int pass; + int bit_depth, color_type; ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 num_frames; ++ png_uint_32 num_plays; ++#endif + + row_buf = NULL; + error_parameters.file_name = inname; +@@ -1383,6 +1387,22 @@ + } + } + #endif ++ ++#ifdef PNG_APNG_SUPPORTED ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL)) ++ { ++ if (png_get_acTL(read_ptr, read_info_ptr, &num_frames, &num_plays)) ++ { ++ png_byte is_hidden; ++ pngtest_debug2("Handling acTL chunks (frames %ld, plays %ld)", ++ num_frames, num_plays); ++ png_set_acTL(write_ptr, write_info_ptr, num_frames, num_plays); ++ is_hidden = png_get_first_frame_is_hidden(read_ptr, read_info_ptr); ++ png_set_first_frame_is_hidden(write_ptr, write_info_ptr, is_hidden); ++ } ++ } ++#endif ++ + #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED + { + png_unknown_chunkp unknowns; +@@ -1463,6 +1483,110 @@ + t_misc += (t_stop - t_start); + t_start = t_stop; + #endif ++#ifdef PNG_APNG_SUPPORTED ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL)) ++ { ++ png_uint_32 frame; ++ for (frame = 0; frame < num_frames; frame++) ++ { ++ png_uint_32 frame_width; ++ png_uint_32 frame_height; ++ png_uint_32 x_offset; ++ png_uint_32 y_offset; ++ png_uint_16 delay_num; ++ png_uint_16 delay_den; ++ png_byte dispose_op; ++ png_byte blend_op; ++ png_read_frame_head(read_ptr, read_info_ptr); ++ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_fcTL)) ++ { ++ png_get_next_frame_fcTL(read_ptr, read_info_ptr, ++ &frame_width, &frame_height, ++ &x_offset, &y_offset, ++ &delay_num, &delay_den, ++ &dispose_op, &blend_op); ++ } ++ else ++ { ++ frame_width = width; ++ frame_height = height; ++ x_offset = 0; ++ y_offset = 0; ++ delay_num = 1; ++ delay_den = 1; ++ dispose_op = PNG_DISPOSE_OP_NONE; ++ blend_op = PNG_BLEND_OP_SOURCE; ++ } ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_write_frame_head(write_ptr, write_info_ptr, (png_bytepp)&row_buf, ++ frame_width, frame_height, ++ x_offset, y_offset, ++ delay_num, delay_den, ++ dispose_op, blend_op); ++#endif ++ for (pass = 0; pass < num_passes; pass++) ++ { ++# ifdef calc_pass_height ++ png_uint_32 pass_height; ++ ++ if (num_passes == 7) /* interlaced */ ++ { ++ if (PNG_PASS_COLS(frame_width, pass) > 0) ++ pass_height = PNG_PASS_ROWS(frame_height, pass); ++ ++ else ++ pass_height = 0; ++ } ++ ++ else /* not interlaced */ ++ pass_height = frame_height; ++# else ++# define pass_height frame_height ++# endif ++ ++ pngtest_debug1("Writing row data for pass %d", pass); ++ for (y = 0; y < pass_height; y++) ++ { ++#ifndef SINGLE_ROWBUF_ALLOC ++ pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y); ++ ++ row_buf = (png_bytep)png_malloc(read_ptr, ++ png_get_rowbytes(read_ptr, read_info_ptr)); ++ ++ pngtest_debug2("\t0x%08lx (%lu bytes)", (unsigned long)row_buf, ++ (unsigned long)png_get_rowbytes(read_ptr, read_info_ptr)); ++ ++#endif /* !SINGLE_ROWBUF_ALLOC */ ++ png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1); ++ ++#ifdef PNG_WRITE_SUPPORTED ++#ifdef PNGTEST_TIMING ++ t_stop = (float)clock(); ++ t_decode += (t_stop - t_start); ++ t_start = t_stop; ++#endif ++ png_write_rows(write_ptr, (png_bytepp)&row_buf, 1); ++#ifdef PNGTEST_TIMING ++ t_stop = (float)clock(); ++ t_encode += (t_stop - t_start); ++ t_start = t_stop; ++#endif ++#endif /* PNG_WRITE_SUPPORTED */ ++ ++#ifndef SINGLE_ROWBUF_ALLOC ++ pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y); ++ png_free(read_ptr, row_buf); ++ row_buf = NULL; ++#endif /* !SINGLE_ROWBUF_ALLOC */ ++ } ++ } ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_write_frame_tail(write_ptr, write_info_ptr); ++#endif ++ } ++ } ++ else ++#endif + for (pass = 0; pass < num_passes; pass++) + { + # ifdef calc_pass_height +diff -Naru libpng-1.6.39.org/pngwrite.c libpng-1.6.39/pngwrite.c +--- libpng-1.6.39.org/pngwrite.c 2022-11-24 08:37:51.511052176 +0900 ++++ libpng-1.6.39/pngwrite.c 2022-11-24 08:41:17.787489734 +0900 +@@ -128,6 +128,10 @@ + * the application continues writing the PNG. So check the 'invalid' + * flag here too. + */ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ if (info_ptr->valid & PNG_INFO_acTL) ++ png_write_acTL(png_ptr, info_ptr->num_frames, info_ptr->num_plays); ++#endif + #ifdef PNG_GAMMA_SUPPORTED + # ifdef PNG_WRITE_gAMA_SUPPORTED + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && +@@ -370,6 +374,11 @@ + png_benign_error(png_ptr, "Wrote palette index exceeding num_palette"); + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ if (png_ptr->num_frames_written != png_ptr->num_frames_to_write) ++ png_error(png_ptr, "Not enough frames written"); ++#endif ++ + /* See if user wants us to write information chunks */ + if (info_ptr != NULL) + { +@@ -1471,6 +1480,43 @@ + } + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void PNGAPI ++png_write_frame_head(png_structp png_ptr, png_infop info_ptr, ++ png_bytepp row_pointers, png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op) ++{ ++ png_debug(1, "in png_write_frame_head"); ++ ++ /* there is a chance this has been set after png_write_info was called, ++ * so it would be set but not written. is there a way to be sure? */ ++ if (!(info_ptr->valid & PNG_INFO_acTL)) ++ png_error(png_ptr, "png_write_frame_head(): acTL not set"); ++ ++ png_write_reset(png_ptr); ++ ++ png_write_reinit(png_ptr, info_ptr, width, height); ++ ++ if ( !(png_ptr->num_frames_written == 0 && ++ (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ) ) ++ png_write_fcTL(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ PNG_UNUSED(row_pointers) ++} ++ ++void PNGAPI ++png_write_frame_tail(png_structp png_ptr, png_infop info_ptr) ++{ ++ png_debug(1, "in png_write_frame_tail"); ++ ++ png_ptr->num_frames_written++; ++ ++ PNG_UNUSED(info_ptr) ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + + #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED + /* Initialize the write structure - general purpose utility. */ +diff -Naru libpng-1.6.39.org/pngwutil.c libpng-1.6.39/pngwutil.c +--- libpng-1.6.39.org/pngwutil.c 2022-11-24 08:37:51.511052176 +0900 ++++ libpng-1.6.39/pngwutil.c 2022-11-24 08:41:17.788489731 +0900 +@@ -821,6 +821,11 @@ + /* Write the chunk */ + png_write_complete_chunk(png_ptr, png_IHDR, buf, 13); + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_ptr->first_frame_width = width; ++ png_ptr->first_frame_height = height; ++#endif ++ + if ((png_ptr->do_filter) == PNG_NO_FILTERS) + { + if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE || +@@ -1002,8 +1007,17 @@ + optimize_cmf(data, png_image_size(png_ptr)); + #endif + +- if (size > 0) +- png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++ if (size > 0) ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ { ++ if (png_ptr->num_frames_written == 0) ++#endif ++ png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ else ++ png_write_fdAT(png_ptr, data, size); ++ } ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + png_ptr->mode |= PNG_HAVE_IDAT; + + png_ptr->zstream.next_out = data; +@@ -1050,7 +1064,17 @@ + #endif + + if (size > 0) ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ { ++ if (png_ptr->num_frames_written == 0) ++#endif + png_write_complete_chunk(png_ptr, png_IDAT, data, size); ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ else ++ png_write_fdAT(png_ptr, data, size); ++ } ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++ + png_ptr->zstream.avail_out = 0; + png_ptr->zstream.next_out = NULL; + png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT; +@@ -1885,6 +1909,82 @@ + } + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void /* PRIVATE */ ++png_write_acTL(png_structp png_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays) ++{ ++ png_byte buf[8]; ++ ++ png_debug(1, "in png_write_acTL"); ++ ++ png_ptr->num_frames_to_write = num_frames; ++ ++ if (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ++ num_frames--; ++ ++ png_save_uint_32(buf, num_frames); ++ png_save_uint_32(buf + 4, num_plays); ++ ++ png_write_complete_chunk(png_ptr, png_acTL, buf, (png_size_t)8); ++} ++ ++void /* PRIVATE */ ++png_write_fcTL(png_structp png_ptr, png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op) ++{ ++ png_byte buf[26]; ++ ++ png_debug(1, "in png_write_fcTL"); ++ ++ if (png_ptr->num_frames_written == 0 && (x_offset != 0 || y_offset != 0)) ++ png_error(png_ptr, "x and/or y offset for the first frame aren't 0"); ++ if (png_ptr->num_frames_written == 0 && ++ (width != png_ptr->first_frame_width || ++ height != png_ptr->first_frame_height)) ++ png_error(png_ptr, "width and/or height in the first frame's fcTL " ++ "don't match the ones in IHDR"); ++ ++ /* more error checking */ ++ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, ++ delay_num, delay_den, dispose_op, blend_op); ++ ++ png_save_uint_32(buf, png_ptr->next_seq_num); ++ png_save_uint_32(buf + 4, width); ++ png_save_uint_32(buf + 8, height); ++ png_save_uint_32(buf + 12, x_offset); ++ png_save_uint_32(buf + 16, y_offset); ++ png_save_uint_16(buf + 20, delay_num); ++ png_save_uint_16(buf + 22, delay_den); ++ buf[24] = dispose_op; ++ buf[25] = blend_op; ++ ++ png_write_complete_chunk(png_ptr, png_fcTL, buf, (png_size_t)26); ++ ++ png_ptr->next_seq_num++; ++} ++ ++void /* PRIVATE */ ++png_write_fdAT(png_structp png_ptr, ++ png_const_bytep data, png_size_t length) ++{ ++ png_byte buf[4]; ++ ++ png_write_chunk_header(png_ptr, png_fdAT, (png_uint_32)(4 + length)); ++ ++ png_save_uint_32(buf, png_ptr->next_seq_num); ++ png_write_chunk_data(png_ptr, buf, 4); ++ ++ png_write_chunk_data(png_ptr, data, length); ++ ++ png_write_chunk_end(png_ptr); ++ ++ png_ptr->next_seq_num++; ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ ++ + /* Initializes the row writing capability of libpng */ + void /* PRIVATE */ + png_write_start_row(png_structrp png_ptr) +@@ -2778,4 +2878,39 @@ + } + #endif /* WRITE_FLUSH */ + } ++ ++#ifdef PNG_WRITE_APNG_SUPPORTED ++void /* PRIVATE */ ++png_write_reset(png_structp png_ptr) ++{ ++ png_ptr->row_number = 0; ++ png_ptr->pass = 0; ++ png_ptr->mode &= ~PNG_HAVE_IDAT; ++} ++ ++void /* PRIVATE */ ++png_write_reinit(png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 width, png_uint_32 height) ++{ ++ if (png_ptr->num_frames_written == 0 && ++ (width != png_ptr->first_frame_width || ++ height != png_ptr->first_frame_height)) ++ png_error(png_ptr, "width and/or height in the first frame's fcTL " ++ "don't match the ones in IHDR"); ++ if (width > png_ptr->first_frame_width || ++ height > png_ptr->first_frame_height) ++ png_error(png_ptr, "width and/or height for a frame greater than" ++ "the ones in IHDR"); ++ ++ png_set_IHDR(png_ptr, info_ptr, width, height, ++ info_ptr->bit_depth, info_ptr->color_type, ++ info_ptr->interlace_type, info_ptr->compression_type, ++ info_ptr->filter_type); ++ ++ png_ptr->width = width; ++ png_ptr->height = height; ++ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width); ++ png_ptr->usr_width = png_ptr->width; ++} ++#endif /* PNG_WRITE_APNG_SUPPORTED */ + #endif /* WRITE */ +diff -Naru libpng-1.6.39.org/scripts/symbols.def libpng-1.6.39/scripts/symbols.def +--- libpng-1.6.39.org/scripts/symbols.def 2022-11-24 08:37:51.515052168 +0900 ++++ libpng-1.6.39/scripts/symbols.def 2022-11-24 08:41:17.788489731 +0900 +@@ -253,3 +253,23 @@ + png_set_eXIf @247 + png_get_eXIf_1 @248 + png_set_eXIf_1 @249 ++ png_get_acTL @250 ++ png_set_acTL @251 ++ png_get_num_frames @252 ++ png_get_num_plays @253 ++ png_get_next_frame_fcTL @254 ++ png_set_next_frame_fcTL @255 ++ png_get_next_frame_width @256 ++ png_get_next_frame_height @257 ++ png_get_next_frame_x_offset @258 ++ png_get_next_frame_y_offset @259 ++ png_get_next_frame_delay_num @260 ++ png_get_next_frame_delay_den @261 ++ png_get_next_frame_dispose_op @262 ++ png_get_next_frame_blend_op @263 ++ png_get_first_frame_is_hidden @264 ++ png_set_first_frame_is_hidden @265 ++ png_read_frame_head @266 ++ png_set_progressive_frame_fn @267 ++ png_write_frame_head @268 ++ png_write_frame_tail @269 diff --git a/patches/libpng-config.patch b/patches/libpng-config.patch new file mode 100644 index 0000000..25b177f --- /dev/null +++ b/patches/libpng-config.patch @@ -0,0 +1,61 @@ +Description: this patch is needed to strip arch-dep bits and get a multiarch -dev package. +Index: libpng1.6-1.6.21/scripts/libpng-config-body.in +=================================================================== +--- libpng1.6-1.6.21.orig/scripts/libpng-config-body.in ++++ libpng1.6-1.6.21/scripts/libpng-config-body.in +@@ -6,7 +6,7 @@ + Known values for OPTION are: + + --prefix print libpng prefix +- --libdir print path to directory containing library ++ --libdir print path to directory containing library (disabled in Debian/Ubuntu) + --libs print library linking information + --ccopts print compiler options + --cppflags print pre-processor flags +@@ -57,6 +57,8 @@ + ;; + + --libdir) ++ echo >&1 "$(basename $0): --libdir option is disabled in Debian/Ubuntu" ++ exit 1 + echo ${libdir} + ;; + +Index: libpng1.6-1.6.21/libpng-config.in +=================================================================== +--- libpng1.6-1.6.21.orig/libpng-config.in ++++ libpng1.6-1.6.21/libpng-config.in +@@ -14,12 +14,13 @@ + version="@PNGLIB_VERSION@" + prefix="@prefix@" + exec_prefix="@exec_prefix@" +-libdir="@libdir@" ++# we disable that to make the -dev package Multi-Arch: same ++libdir= + includedir="@includedir@/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@" + libs="-lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@" + all_libs="-lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ @LIBS@" + I_opts="-I${includedir}" +-L_opts="-L${libdir}" ++L_opts= + R_opts="" + cppflags="" + ccopts="" +@@ -33,7 +34,7 @@ + Known values for OPTION are: + + --prefix print libpng prefix +- --libdir print path to directory containing library ++ --libdir print path to directory containing library (disabled in Debian/Ubuntu) + --libs print library linking information + --ccopts print compiler options + --cppflags print pre-processor flags +@@ -84,6 +85,8 @@ + ;; + + --libdir) ++ echo >&1 "$(basename $0): --libdir option is disabled in Debian/Ubuntu" ++ exit 1 + echo ${libdir} + ;; + diff --git a/patches/series b/patches/series new file mode 100755 index 0000000..88cc6c0 --- /dev/null +++ b/patches/series @@ -0,0 +1,2 @@ +libpng-config.patch +#libpng-1.6.39-apng.patch diff --git a/rules b/rules new file mode 100755 index 0000000..cd96e42 --- /dev/null +++ b/rules @@ -0,0 +1,39 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +# export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS := hardening=+all +export DEB_CFLAGS_MAINT_APPEND := $(shell dpkg-buildflags --get CPPFLAGS) +export DEB_CXXFLAGS_MAINT_APPEND := $(shell dpkg-buildflags --get CPPFLAGS) +export DPKG_GENSYMBOLS_CHECK_LEVEL = 4 +CC?=gcc + +%: + dh $@ --buildsystem=cmake + +include /usr/share/dpkg/architecture.mk + +ifneq (,$(filter $(DEB_HOST_ARCH_CPU),powerpc ppc64)) +# VSX is an extension of AltiVec, which is not part of the baseline. +# see https://wiki.debian.org/ArchitectureSpecificsMemo +override_dh_auto_configure: + dh_auto_configure -- -DPNG_POWERPC_VSX=off +endif + +override_dh_auto_configure: + dh_auto_configure -- -DPNG_ARM_NEON_OPT=0 + +override_dh_auto_test: +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + dh_auto_test +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + $(CC) $(CFLAGS) $(CPPFLAGS) -Wall -g -O2 -c -o pngtest.o pngtest.c -I obj-$(DEB_HOST_GNU_TYPE) + $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pngtest-static -Wall -g -O2 pngtest.o obj-$(DEB_HOST_GNU_TYPE)/libpng16.a -lz -lm + ./pngtest-static +endif +endif + +override_dh_makeshlibs: + dh_makeshlibs --add-udeb=libpng16-16-udeb -a diff --git a/salsa-ci.yml b/salsa-ci.yml new file mode 100644 index 0000000..8424db4 --- /dev/null +++ b/salsa-ci.yml @@ -0,0 +1,3 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 0000000..1bc9379 --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,4 @@ +Bug-Database: https://github.com/pnggroup/libpng/issues +Bug-Submit: https://github.com/pnggroup/libpng/issues/new +Repository: https://github.com/pnggroup/libpng.git +Repository-Browse: https://github.com/pnggroup/libpng diff --git a/watch b/watch new file mode 100644 index 0000000..3c1ed54 --- /dev/null +++ b/watch @@ -0,0 +1,10 @@ +# qa.debian.org runs a redirector which allows a simpler form of URL +# for SourceForge based projects. The format below will automatically +# be rewritten to use the redirector. +#opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/;s/_/./g;s/^(\S+-x86\.64)/0.0.$1/;s/^(\S+-i586)/0.0.$1/,pgpsigurlmangle=s/$/.asc/ \ +# http://www.libpng.org/pub/png/libpng.html .*/libpng-(\d\S+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) +#http://sf.net/libpng/libpng-(\d\S+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) +# +version=4 +opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/libpng-$1\.tar\.gz/ \ + https://github.com/pnggroup/libpng/tags .*/v?(\d\S+)\.tar\.gz -- 2.30.2